Upgrade from .net 4 to 4.5 breaks Html.Raw call in Javascript

前端 未结 4 2026
佛祖请我去吃肉
佛祖请我去吃肉 2021-01-06 06:53

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 listDa         


        
相关标签:
4条回答
  • 2021-01-06 07:33

    This issue still exist in Visual Studio 2013 SP 2

    To fix this warning message initialize javascript variable first. IMO Visual studio think var as implicitly typed if any var followed by @.

            var ListData;
            var PagerData;
            ListData =  @(Html.Raw(listData));
            PagerData =  @(Html.Raw(pagerData));
    
    0 讨论(0)
  • 2021-01-06 07:40

    I'm using MVC5 and finding the same issue, so I solved it this way, which should work in all versions

    @Html.Raw("var myData = " +  Json.Encode(this.Model.MyData) + ";" )
    

    However, I would use this only in the simplest situations since you lose any intellisense as to VAR type (although it does treat it as a global instance and the compiler doesn't throw a wobbler), so for now I think an initial, empty definition is probably the best way to proceed.

    0 讨论(0)
  • 2021-01-06 07:42

    I have had the same thing happen, but it does so at random. What I have tried to resolve it is the following:

    Make sure you can compile/build/debug in Debug mode, switch to Release mode and attempt to debug/publish from that mode. Switch back to Debug mode and re-attempt the publish.

    Some combination of switching modes does the trick, I just can'y nail down what it is exactly. Once you get it working, don't close VS ;-)

    Let's hope MS gets this fixed in SP1.

    0 讨论(0)
  • 2021-01-06 07:49

    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.

    0 讨论(0)
提交回复
热议问题