使用ViewData将控制器的布尔值传递给视图时,如何在javascript中将其作为布尔值检索? 例如:
控制器:
ViewData["login"] = true;
查看
<script type="text/javascript">
var login = <%= (bool)ViewData["Login"] %>; /// this doesn't work, throw javascript error;
</script>
你当然可以做到
<script type="text/javascript">
var login = '<%= ViewData["Login"] %>'; /// now login is a string 'True'
</script>
但我宁愿将登录对象保留为布尔值而不是字符串,如果可能的话。
答案 0 :(得分:5)
只需删除单引号。
<script type="text/javascript">
var login = <%= (bool)ViewData["Login"] ? "true" : "false" %>;
</script>
这将导致:
var login = true;
将在浏览器中将其解析为布尔值。
答案 1 :(得分:0)
我相信你可以这样做:
<script type="text/javascript">
var login = new Boolean(<%= (bool)ViewData["Login"] ? "true" : "false" %>);
</script>
编辑:实际上我拥有它的第一种方式是行不通的。传递给Boolean()的true / false值必须小写才能生效。