【问题标题】:Why is MVC 4 Razor escaping ampersand when using HTML.Raw in a title attribute为什么在标题属性中使用 HTML.Raw 时 MVC 4 Razor 会转义与符号
【发布时间】:2012-09-07 15:59:12
【问题描述】:

我们最近升级到 MVC 4,现在我们的链接中的标题无法正确显示。问题出在 HTML.Raw 不会在我们的标题属性中转义 & 之前,但现在可以了。以下是我的示例代码:

<a title="@Html.Raw("Shoe Size 6&#189;-8")">Test</a>

这会产生以下标记:

<a title="Shoe Size 6&amp;#189;-8">Test</a>

到目前为止,我发现的唯一解决方案是将整个锚点放入一个字符串中,然后 HTML.Raw 该字符串。

Why is Html.Raw escaping ampersand in anchor tag in ASP.NET MVC 4?

这是一个非常丑陋的解决方案,我希望有更好的选择。

【问题讨论】:

标签: razor asp.net-mvc-4


【解决方案1】:

虽然这只是一个不那么丑陋的解决方法,但您可以简单地@Html.Raw 完整的属性名称和值。

<a @Html.Raw("title=\"Show Size 6&#189;-8\"")>Test</a>

结果:

<a title="Show Size 6&#189;-8">Test</a>

【讨论】:

    【解决方案2】:

    如果您无法执行上面列出的解决方法,我有一个已修补的基类,您可以尝试通过 web.config 进行注入。查看https://gist.github.com/4036121

    【讨论】:

    猜你喜欢
    • 2012-08-11
    • 2014-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多