加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-4 – 从.net 4升级到4.5会破坏Javascript中的Html.R

发布时间:2020-12-16 06:47:51 所属栏目:asp.Net 来源:网络整理
导读:我在c#MVC 3 razor页面中有以下代码,我将序列化数据传递给KnockoutJs的 javascript变量: @{ var listData = new JavaScriptSerializer().Serialize(Model.ListItems); var pagerData = new JavaScriptSerializer().Serialize(Model.Pager); }// additional
我在c#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>

解决方法

请在此 connect issue上添加投票.我们将在下一版本的VS中解决此问题.我已将您的repro代码附加到此错误,并添加了此帖子的链接作为该问题的另一个表现形式.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读