2012-09-07 12 views
10

Recientemente hemos actualizado a MVC 4 y ahora tenemos títulos en nuestros enlaces que no se muestran correctamente. El problema es antes de HTML.Raw no escaparía a & en los atributos de título, pero ahora sí. A continuación se muestra el código de ejemplo:¿Por qué MVC 4 Razor escapa de ampersand cuando se utiliza HTML.Vaya en un atributo de título

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

que produce el siguiente marcado:

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

La única solución que encontré hasta ahora era poner todo el ancla en una cadena y luego HTML.Raw esa cadena.

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

Esta es una solución muy fea y espero que haya una mejor alternativa.

+1

Esto se ha solucionado en MVC 5.0. Compruebe el [informe de errores] (http://aspnetwebstack.codeplex.com/workitem/393) –

Respuesta

14

Si bien es solo un pequeño paso menos feo, usted puede simplemente @Html.Raw el nombre completo del atributo y su valor.

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

Resultados: en

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

Si no se puede hacer la solución enumerada anteriormente, que tienen una clase base parcheado podría intentar inyectar a través de web.config. Compruébelo en https://gist.github.com/4036121

+2

Bueno, y gracias por [ponerlo en cola para que se solucione] (http://aspnetwebstack.codeplex.com/workitem/393) . –

Cuestiones relacionadas