从.NET 4至4.5休息Html.Raw在javascript调用升级 [英] Upgrade from .net 4 to 4.5 breaks Html.Raw call in Javascript

查看:293
本文介绍了从.NET 4至4.5休息Html.Raw在javascript调用升级的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个C#MVC 3剃须刀页以下code,其中我传递序列化的数据转化为KnockoutJs一个javascript变量:

  @ {
        VAR的ListData =新的JavaScriptSerializer()序列化(Model.ListItems)。
        VAR pagerData =新的JavaScriptSerializer()序列化(Model.Pager)。
    }
//额外的code    <脚本类型=文/ JavaScript的>        VAR的ListData = @(Html.Raw(的ListData)); //< - 语法错误在这里
        VAR PagerData = @(Html.Raw(pagerData)); //< - 语法错误在这里     //附加JS code    < / SCRIPT>

升级到VS 2012后,我在结束上述Html.Raw行javascript的分号后收到错误潦草的字迹。该项目符合,但VS 2012中显示每行的错误列表语法错误。如果没有分号的JavaScript也显示了语法错误。

这code的工作没有在previous版本问题。这是在VS 2012语法分析器中的错误,是有办法避免产生错误?

修改
任何人都看到这个问题?下面是一个简化的版本,在一个新的页面中分离的相同的问题。如果你的listData行你得到一个javascript语法错误的末尾添加一个分号,无一不是在下一行。这是在VS2010和VS2012之间的JavaScript编译器错误?

  @ {
    VAR的ListData =测试;
    VAR pagerData =测试2;
}
    <脚本类型=文/ JavaScript的>
        VAR的ListData = @(Html.Raw(的ListData))
        VAR PagerData = @(Html.Raw(pagerData))
    < / SCRIPT>


解决方案

请加上这次投票<一个href=\"http://connect.microsoft.com/VisualStudio/feedback/details/760339/valid-javascript-razor-syntax-marked-as-syntax-error\"相对=nofollow>连接问题。我们将在VS的下一版本解决这个问题我重视你的摄制code到这个错误,并添加链接到这个职位的问题的另一种表现形式。

I have the following code in a c# MVC 3 razor page where I am passing serialized data into a javascript variable for KnockoutJs:

    @{   
        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>   

After upgrading to VS 2012, I am getting error squiggles after the javascript semi-colons at the end the Html.Raw lines above. The project complies but VS 2012 displays 'Syntax Error' in the Error List for each line. Without the semi-colons the javascript also shows a 'Syntax Error'.

This code worked without issues in the previous version. Is this a bug in the VS 2012 parser and is there a way to avoid the generated errors?

Edit Anyone else seeing this issue? Below is a simplified version with the same issue isolated in a new page. If you add a semi-colon at the end of the ListData line you get a javascript syntax error, without one it is on the next line. Is this a bug in the javascript compiler between VS2010 and VS2012?

@{   
    var listData = "test";
    var pagerData = "test2";
}
    <script type="text/javascript" >
        var ListData =  @(Html.Raw(listData))
        var PagerData =  @(Html.Raw(pagerData))
    </script>

解决方案

Please add vote on this connect issue. We will address this issue in next version of VS. I have attached your repro code to this bug and added link to this post as another manifestation of the issue.

这篇关于从.NET 4至4.5休息Html.Raw在javascript调用升级的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆