将MVC模型属性存储到JavaScript var对象语法错误

时间:2016-07-18 14:20:31

标签: javascript c# asp.net-mvc asp.net-mvc-4 razor

由于某种原因,我在尝试使用Razor语法将模型对象存储到JavaScript var时遇到语法错误。在研究谷歌后,似乎我应该可以做这样的事情。我在我的cshtml中使用脚本标记来执行此操作(我知道这是不好的做法,但我在这个项目中来得很晚,所以我为了统一而这样做)所以这是代码。

Index.cshtml:

<script>
    var isAvailable = @Model.IsAvailable; // This gives me a syntax error
</script>

我有一个名为IsAvailable的布尔属性的Model类,我试图将它存储在var isAvailable中,但Visual Studio不喜欢它。知道为什么吗?

2 个答案:

答案 0 :(得分:3)

默认情况下,MVC调用ToString(),Booleans转换为字符串会产生大写的值(即True),其中JS布尔语法需要较低的(即真)。试试这个:

var isAvailable = @(Model.IsAvailable.ToString().ToLower());

答案 1 :(得分:0)

尝试使用:

<script>
    var isAvailable = @(Model.IsAvailable) ; 
</script>

如果不是这肯定会奏效:

<script>
    var isAvailable = ('@Model.IsAvailable.ToLower()'=='true'); 
</script>