mik*_*t21 1 javascript c# escaping razor asp.net-mvc-4
我有一个C#字符串需要传递给页面,然后发送回服务器.它需要能够处理单引号,双引号和可能导致问题的任何其他标准字符.我正在使用MVC4和剃须刀.现在我将字符串传递给javascript.我有这样的事情:
var str = '@Html.Raw(Model.SomeString.Replace("'", @"\'"))';
Run Code Online (Sandbox Code Playgroud)
这工作得很好,但我想知道是否有更好,更优雅的方式来转义将传递给javascript的C#字符串.
我已经尝试将值存储在隐藏字段中,如下所示:
@Html.Hidden(x => x.SomeString)
Run Code Online (Sandbox Code Playgroud)
但是当我去抓取价值时,它会出现双引号问题.
编辑:结果是Html.Hidden问题是由其他东西引起的
任何帮助是极大的赞赏!
注意:必须在IE9和10中工作.没有ViewBags.
fej*_*oco 10
你必须使用HttpUtility.JavaScriptStringEncode.这是为了这个目的,它不仅编码引号,还编码转义序列.
BTW @Html.Hidden应该可以正常工作,因为它还处理转义(与上面不同的类型,在这种情况下HTML转义,处理&符号,<>等).