Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why is MVC 4 Razor escaping ampersand when using HTML.Raw in a title attribute

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.

like image 724
Blegger Avatar asked Sep 07 '12 15:09

Blegger


1 Answers

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>
like image 91
patridge Avatar answered May 21 '23 17:05

patridge