javascript - 从 MVC 3 Razor View 变量中转义单引号

标签 javascript asp.net-mvc-3 escaping

我在 item.Name 中有一个变量,其中包含字符串“It's Tuesday!”。 为了减轻 javascript 错误,在 c# Controller 中我已经转义了这个单引号。 在网页上,它显示为“It\'s Tuesday!”。

这至少可以防止任何 javascript 错误,但是,我不希望显示的实际字符串包含已转义的反斜杠。

一旦处理了 javascript 错误,我如何才能恢复转义?这感觉像是一个相当简单的问题,但我对 MVC 3 有点陌生。非常感谢任何提示!我的搜索没有找到任何特定于此的示例。

我在 Razor View 中的代码示例:

@foreach (var item in Model)
{ 
    @Html.DisplayFor(modelItem => item.Name) // item.Name = "It\'s Tuesday!"
} 

最佳答案

创建一个您可以使用的扩展方法或直接编码。我不会在 View 获取它之前进行编码,除非您在 View 模型中有一个单独的属性用于此目的(这不是一个坏主意()

这没有经过测试,但符合这些思路


public static class HtmlExtensions

{
    public static IHtmlString JavaScriptEncode(this HtmlHelper html, string item)
    {
        return new HtmlString(HttpUtility.JavaScriptStringEncode(item));
    }
}

然后您可以从 View 中调用 @Html.JavaScriptEncode(yourProperty) 或简单地引用您的编码属性名称。

关于javascript - 从 MVC 3 Razor View 变量中转义单引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8479260/

相关文章:

python - 如何在 python xml.etree 模块中插入换行符

javascript - 如何在我的组件中导入 javascript min 文件?

javascript - 如何将参数 ['id' ] 传递到索引页

javascript - 如何在现有的 Node.js Express 设置中集成灵活的速率限制器?

c# - MVC 3 显示用户特定数据

batch-file - bq 工具、bat 文件 | CALL 时转义字符不起作用

javascript - 使用 jQuery 改变 div 的背景颜色

c# - 写入头部,但不是通过 _Layout.cshtml

asp.net - HttpContext.Response.Filter

windows - makefile - 转义括号