剃刀页面中的Javascript语法错误

时间:2012-11-12 17:23:47

标签: javascript serialization razor asp.net-mvc-4

我在this link中找到了将一些数据从我的模型传输到javascript对象的解决方案。问题是我在visual studio中有一个错误,表明分号是无效的,但是当我尝试运行我的应用程序时,它运行得很好。

以下是显示错误的屏幕截图:

enter image description here

但如果我删除分号,我现在有这个错误:

enter image description here

无论如何,javascript语句应该总是在行尾有一个分号。

如果我运行我的应用程序时,这个错误意味着什么呢?

3 个答案:

答案 0 :(得分:3)

您可以尝试将其封闭在一个块中:

var serializedData = @{ 
    Html.Raw(NewtonSoft.Json.JsonConvert.SerializeObject(Model));
};

编辑:此答案仅适用于VS 2010. VS 2012中的升级也会破坏此解决方法。

答案 1 :(得分:2)

我刚刚开始使用Razor / MVC 4,但你可以这样做吗?

@{
    var serializedData = Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model));
}
<script>
    ...
    var serializedData = @serializedData;

答案 2 :(得分:1)

将你的剃刀代码用引号括起来:

var myVar = '@serializedData';

作为JavaScript duck类型,在大多数用例中你应该没问题。