由于某种原因,我在尝试使用Razor语法将模型对象存储到JavaScript var时遇到语法错误。在研究谷歌后,似乎我应该可以做这样的事情。我在我的cshtml中使用脚本标记来执行此操作(我知道这是不好的做法,但我在这个项目中来得很晚,所以我为了统一而这样做)所以这是代码。
Index.cshtml:
<script>
var isAvailable = @Model.IsAvailable; // This gives me a syntax error
</script>
我有一个名为IsAvailable的布尔属性的Model类,我试图将它存储在var isAvailable中,但Visual Studio不喜欢它。知道为什么吗?
答案 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>