我可能遗漏了一些明显的东西,但我似乎无法让我的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”] [ ] 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/