javascript - 简单的 Javascript If 语句在 ASP.NET MVC View 中不起作用

标签 javascript c# asp.net asp.net-mvc

我可能遗漏了一些明显的东西,但我似乎无法让我的Javascript评估为“true”并触发我想要的事件(如果值为true/相当于一个字符串,则将复选框设置为勾选)真的)。

代码如下:

window.onload = function () {
        alert("let's go!");
        var enabledVal = TempData["enabled"];

        if (enabledVal == "checked") {
            alert("made it here");
            document.getElementById("eCheck").checked = true;
        }

    }

我知道正在达到 onload 函数,因为警报已触发。 TempData["enabled"] 在 Controller 中设置如下:

//returns True/False
            string enabledVal = (from person in testTechObj.People
                                 where person.PersonId.Equals(id)
                                 select person.IsEnabled).SingleOrDefault().ToString();

            if (enabledVal == "True")
            {
                enabledVal = "checked";
            }

... 
//pass enabled/authorised values
            TempData["enabled"] = enabledVal;

我尝试检查 bool 值和字符串,但 If 语句在这两种情况下都不会计算。我知道 TempData["enabled"] 设置为我期望的值(“checked”或“True”),因为我尝试使用 @TempData["enabled"] 将其写入屏幕,并且出现了我期望的值。

我是否遗漏了一些明显的东西?

编辑:浏览器输出(从顶部开始的第三位文本是@TempData[“enabled”] [enter image description here ] 1

最佳答案

TempData 更改为 ViewData 并将 onload 函数更改为此:

window.onload = function () {
    alert("let's go!");
    var enabledVal = '@ViewData["enabled"]';

    if (enabledVal == "checked") {
        alert("made it here");
        document.getElementById("eCheck").checked = true;
    }

}

关于javascript - 简单的 Javascript If 语句在 ASP.NET MVC View 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43901533/

相关文章:

c# - 在没有密码的情况下验证 MembershipUser?

javascript - Cordova 地理定位,等待用户权限

javascript - 如何获取 javascript 数组的映射,但对最后一个元素执行不同的操作?

javascript - 如何通过带有查询参数的 URL 导航到 Angular 路由?

c# - uNet 独立的客户端/服务器

c# - 将图标添加到 Visual Studio 2017 中的现有菜单命令

jquery - 使用 jQuery slideup 或 slidedown 效果在 asp View 之间切换?

javascript - OnKeyDown 不适用于 IE9,但适用于所有其他浏览器

javascript - 如何从javascript访问代码隐藏中声明的数组

javascript - AngularJS( ionic 框架)-更改 Controller 内的状态似乎不起作用