为什么在标题属性使用HTML.Raw当MVC 4剃刀逃逸符号(Why is MVC 4 Razor

2019-06-27 23:54发布

我们最近升级到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该字符串。

为什么Html.Raw逸出锚标记符号在ASP.NET MVC 4? 。

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

Answer 1:

虽然只是一小步,少丑陋的解决方法,你可以简单地@Html.Raw全属性名称和值。

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

结果是:

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


Answer 2:

如果你不能做到上面列出的解决办法,我有一个补丁的基类,你可以尝试通过web.config中注入。 瞧瞧吧https://gist.github.com/4036121



文章来源: Why is MVC 4 Razor escaping ampersand when using HTML.Raw in a title attribute