11

We recently upgraded to MVC 4 and now we are having titles in our links not display correctly. The problem is before HTML.Raw would not escape & in our title attributes, but now it does. Below is my sample code:

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

Which produces the following markup:

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

The only solution I found so far was to put the entire anchor into a string and then HTML.Raw that string.

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

This is a very ugly solution and I am hoping there is a better alternative.

Community
  • 1
  • 1
Blegger
  • 4,272
  • 4
  • 30
  • 36

2 Answers2

15

While it is only a small step less ugly workaround, you can simply @Html.Raw the full attribute name and value.

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

Results in:

<a title="Show Size 6&#189;-8">Test</a>
patridge
  • 26,385
  • 18
  • 89
  • 135
8

If you can't do the workaround listed above, I have a patched base-class you could try injecting via web.config. Check it out at https://gist.github.com/4036121

Andrew Stanton-Nurse
  • 6,274
  • 1
  • 28
  • 20