ViewModel中的布尔变量不能用作View中的条件

时间:2014-08-29 22:50:18

标签: javascript asp.net viewmodel

所以我在我的视图加载时尝试执行脚本。问题是,每当我使用我的布尔变量作为条件时,结果始终为True,即使它被识别为False值。

更具体地说:

<script type="text/javascript">
    $(document).ready(function () {
        alert('@Model.MyBool');
        alert('@Model.MyBool' ? "True" : "False");
    });
</script>

输出

False
True

OR

True
True

似乎脚本可以识别变量的正确值,但在尝试将其用作条件时立即忘记它。我甚至尝试将它存储在临时变量中,同样的事情仍然存在。

这有什么理由吗?我似乎无法通过谷歌找到任何信息,这让我发疯了。

谢谢!

2 个答案:

答案 0 :(得分:0)

可能是因为您将变量包装在单引号中。尝试删除引号。

alert(@Model.MyBool.ToString().ToLower() ? "True" : "False");

答案 1 :(得分:0)

在Javascript条件中,如果字符串"False"等于undefined,则会有条件规避,因为它不是undefined,它会躲到true

将变量解析为布尔值或以这种方式使用警报;

alert('@Model.MyBool' === "True" ? "True" : "False");