Javascript ASP.NET MVC-显示单报价时razor上的错误

Javascript ASP.NET MVC-显示单报价时razor上的错误,javascript,c#,asp.net-mvc,razor,Javascript,C#,Asp.net Mvc,Razor,我只是注意到当我这样做的时候: @{ String var1 = "there's error to this string"; } <script> alert('@var1'); </script> 当我开始运行这个程序并查看警报框时,单引号字符正在转换为奇怪的显示,从开始 但是,当我直接将字符串值放入alert box时,它会按预期工作: <script> alert("there's error to this string

我只是注意到当我这样做的时候:

@{
    String var1 = "there's error to this string";
}

<script>
    alert('@var1');
</script>
当我开始运行这个程序并查看警报框时,单引号字符正在转换为奇怪的显示,从开始

但是,当我直接将字符串值放入alert box时,它会按预期工作:

<script>
    alert("there's error to this string");
</script>

我希望有人能在这里解释为什么会发生这种情况。

您需要对字符串进行Javascript编码,然后告诉Razor不要对其进行HTML编码:

@Html.Raw(HttpUtility.JavaScriptStringEncode(var1))

看看你的报价。您需要转义字符串。您看到的是HTML实体编码。@Slaks-我已经这样做了,但它仍然显示奇怪的字符。这不是错误-它正在做它应该做的事情。除了SLaks的答案,你还可以使用alert@Html.RawJson.Encodevar1