Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ViewModel中的布尔变量可以';在视图中不能用作条件_Javascript_Asp.net_Viewmodel - Fatal编程技术网

Javascript ViewModel中的布尔变量可以';在视图中不能用作条件

Javascript ViewModel中的布尔变量可以';在视图中不能用作条件,javascript,asp.net,viewmodel,Javascript,Asp.net,Viewmodel,因此,我试图在加载视图时执行脚本。问题是,每当我使用布尔变量作为条件时,结果总是真的,即使它被识别为假值 更具体地说: <script type="text/javascript"> $(document).ready(function () { alert('@Model.MyBool'); alert('@Model.MyBool' ? "True" : "False"); }); </script> 或 脚本似乎可以

因此,我试图在加载视图时执行脚本。问题是,每当我使用布尔变量作为条件时,结果总是真的,即使它被识别为假值

更具体地说:

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

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

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


谢谢

这可能是因为您将变量用单引号括起来。尝试删除引号

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

在Javascript中,如果字符串
“False”
等于
未定义
,则条件求值,因为它不是
未定义
,它求值为

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

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

修改了代码。由于MVC将bool呈现为“False”或“True”,并且这些在Javascript中不是有效的文本,因此将抛出错误。因此,将bool值转换为小写。也许有更好的解决办法。
alert(@Model.MyBool.ToString().ToLower() ? "True" : "False");
alert('@Model.MyBool' === "True" ? "True" : "False");