2012-09-07 9 views
10

MVC 4に最近アップグレードされましたが、リンクのタイトルが正しく表示されません。問題は、HTML.Rawがタイトル属性で&をエスケープしないうちに起こる前です。以下は私のサンプルコードは次のとおりです。タイトル属性にHTML.Rawを使用すると、MVC 4 Razorエスケープ文字アンパサンドが表示される理由

次のマークアップを生成
<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?

これは非常に醜い解決策であり、より良い選択肢があると私は期待しています。

+1

これはMVC 5.0で修正されています。 [バグレポート]を確認してください(http://aspnetwebstack.codeplex.com/workitem/393) –

答えて

14

簡単な解決策ではありませんが、完全な属性名と値は@Html.Rawです。

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

結果で:

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

あなたは上記の回避策を行うことができない場合、私はあなたがweb.configファイルを経由して注入して試みることができるパッチが適用された基底クラスを持っています。 https://gist.github.com/4036121

+2

ニース - [修正待ち](http://aspnetwebstack.codeplex.com/workitem/393) 。 –

関連する問題