Joh*_*ion 6 javascript escaping asp.net-mvc-3
我在item.Name中有一个变量,其中包含字符串"It's Tuesday!".为了缓解javascript错误,在c#控制器中我已经逃过了这个单引号.在网页上,它看起来像是"这是星期二!".
这至少可以防止任何javascript错误,但是,我不希望显示的实际字符串包含已经转义它的反斜杠.
一旦javascript错误已被处理,我怎么能够恢复转义?这感觉就像一个相当简单的问题,但我对MVC 3有点不熟悉.任何提示都非常感谢!我的搜索没有找到任何特定于此的示例.
我在剃刀视图中的代码示例:
@foreach (var item in Model)
{
@Html.DisplayFor(modelItem => item.Name) // item.Name = "It\'s Tuesday!"
}
Run Code Online (Sandbox Code Playgroud)
Ada*_*SFT 21
创建一个可以使用的扩展方法或直接编码.我不会在视图获取之前进行编码,除非你的viewmodel中有一个单独的属性用于此(不是一个坏主意()
这不是经过测试,而是沿着这些方向发展
public static class HtmlExtensions
{
public static IHtmlString JavaScriptEncode(this HtmlHelper html, string item)
{
return new HtmlString(HttpUtility.JavaScriptStringEncode(item));
}
}
然后,您可以从视图中调用@ Html.JavaScriptEncode(yourProperty),或者只是引用您的编码属性名称.
Rub*_*ord 10
以下内容可用于防止再次编码输出.然而,这确实依赖于您自己正确处理它.
@MvcHtmlString.Create(yourString)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10944 次 |
| 最近记录: |