所以我在我的视图加载时尝试执行脚本。问题是,每当我使用我的布尔变量作为条件时,结果始终为True,即使它被识别为False值。
更具体地说:
<script type="text/javascript">
$(document).ready(function () {
alert('@Model.MyBool');
alert('@Model.MyBool' ? "True" : "False");
});
</script>
输出
False
True
OR
True
True
似乎脚本可以识别变量的正确值,但在尝试将其用作条件时立即忘记它。我甚至尝试将它存储在临时变量中,同样的事情仍然存在。
这有什么理由吗?我似乎无法通过谷歌找到任何信息,这让我发疯了。
谢谢!
答案 0 :(得分:0)
可能是因为您将变量包装在单引号中。尝试删除引号。
alert(@Model.MyBool.ToString().ToLower() ? "True" : "False");
答案 1 :(得分:0)
在Javascript条件中,如果字符串"False"
等于undefined
,则会有条件规避,因为它不是undefined
,它会躲到true
。
将变量解析为布尔值或以这种方式使用警报;
alert('@Model.MyBool' === "True" ? "True" : "False");