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

将MVC模型属性存储到JavaScript var对象语法错误,javascript,c#,asp.net-mvc,asp.net-mvc-4,razor,Javascript,C#,Asp.net Mvc,Asp.net Mvc 4,Razor,出于某种原因,当我试图使用Razor语法将模型对象存储到JavaScript变量中时,我遇到了一个语法错误。在研究了google之后,我似乎应该能够这样做。我在我的cshtml中使用了一个脚本标记来实现这一点(我知道这是一个糟糕的做法,但我在这个项目中迟到了,所以我这样做是为了一致性),下面是代码 Index.cshtml: <script> var isAvailable = @Model.IsAvailable; // This gives me a syntax err

出于某种原因,当我试图使用Razor语法将模型对象存储到JavaScript变量中时,我遇到了一个语法错误。在研究了google之后,我似乎应该能够这样做。我在我的cshtml中使用了一个脚本标记来实现这一点(我知道这是一个糟糕的做法,但我在这个项目中迟到了,所以我这样做是为了一致性),下面是代码

Index.cshtml:

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

var isAvailable=@Model.isAvailable;//这给了我一个语法错误
我有一个名为IsAvailable的带有布尔属性的模型类,我试图将其存储在var IsAvailable中,但VisualStudio不喜欢它。知道为什么吗?

试试这个:

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

var isAvailable=@(Model.isAvailable);
如果不是这样,这肯定会奏效:

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

var isAvailable=('@Model.isAvailable.ToLower()'='true');
尝试使用以下方法:

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

var isAvailable=@(Model.isAvailable);
如果不是这样,这肯定会奏效:

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

var isAvailable=('@Model.isAvailable.ToLower()'='true');

默认情况下,MVC调用ToString(),将布尔值转换为字符串会生成大写值(即True),而JS布尔语法需要小写值(即True)。试试这个:

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

默认情况下,MVC调用ToString(),将布尔值转换为字符串将生成大写值(即True),而JS布尔语法需要小写值(即True)。试试这个:

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

确切的语法错误是什么?它字面上说是“语法错误”,哈哈。红色的错误线就在分号后面。我觉得你的代码很好。运行时是否显示错误?另外,请记住
True
不是
True
。IsAvailable是布尔值吗?无论如何,请尝试用引号将其括起来:var isAvailable=“@Model.isAvailable”
True
不是
True
。所以你应该试试liek
var isAvailable=@(Model.isAvailable?“true”:“false”)确切的语法错误是什么?它字面意思是“语法错误”,哈哈。红色的错误线就在分号后面。我觉得你的代码很好。运行时是否显示错误?另外,请记住
True
不是
True
。IsAvailable是布尔值吗?无论如何,请尝试用引号将其括起来:var isAvailable=“@Model.isAvailable”
True
不是
True
。所以你应该试试liek
var isAvailable=@(Model.isAvailable?“true”:“false”)如果我在括号内的内容周围加上单引号,那么这就完美了。谢谢如果我用单引号括起括号内的内容,那么这就完美了。谢谢