MVC - 将ViewData作为布尔值传递

时间:2010-12-01 06:09:25

标签: javascript asp.net asp.net-mvc

使用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>

但我宁愿将登录对象保留为布尔值而不是字符串,如果可能的话。

2 个答案:

答案 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值必须小写才能生效。