我在 ac#MVC 3 razor 页面中有以下代码,我将序列化数据传递到 KnockoutJs 的 javascript 变量中:
@{
var listData = new JavaScriptSerializer().Serialize(Model.ListItems);
var pagerData = new JavaScriptSerializer().Serialize(Model.Pager);
}
// additional code
<script type="text/javascript" >
var ListData = @(Html.Raw(listData)); // <-- Syntax Error here
var PagerData = @(Html.Raw(pagerData)); // <-- Syntax Error here
// additional js code
</script>
升级到 VS 2012 后,我在上面 Html.Raw 行末尾的 javascript 分号后收到错误曲线。该项目符合但 VS 2012 在每行的错误列表中显示“语法错误”。如果没有分号,javascript 也会显示“语法错误”。
此代码在以前的版本中没有问题。这是 VS 2012 解析器中的错误吗?有没有办法避免生成的错误?
编辑 还有其他人看到这个问题吗?下面是一个简化版本,在新页面中隔离了相同的问题。如果在 ListData 行的末尾添加分号,则会出现 javascript 语法错误,如果没有,则在下一行。这是 VS2010 和 VS2012 之间的 javascript 编译器中的错误吗?
@{
var listData = "test";
var pagerData = "test2";
}
<script type="text/javascript" >
var ListData = @(Html.Raw(listData))
var PagerData = @(Html.Raw(pagerData))
</script>