11

最近 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 にすることでした。

ASP.NET MVC 4のアンカータグでHtml.Rawがアンパサンドをエスケープするのはなぜですか? .

これは非常に醜い解決策であり、より良い代替手段があることを願っています。

4

2 に答える 2

15

これは小さなステップであり、醜い回避策ではありませんが@Html.Raw、完全な属性名と値を使用するだけで済みます。

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

結果:

<a title="Show Size 6&#189;-8">Test</a>
于 2012-09-07T17:08:00.380 に答える
8

上記の回避策を実行できない場合は、web.config を介して注入できるパッチを適用した基本クラスがあります。https://gist.github.com/4036121で確認してください。

于 2012-11-08T02:15:21.497 に答える