2010-09-08 15 views
12

@ en asp.net mvc 3 previsualización 1 codifica automaticamente html, ¿hay una forma alternativa para que no sea HTML?decodificación HTML en ASP.NET MVC 3

pensar en este escenario:

@view.BestSitesEver.Replace("stackoverflow", "<h1>StackOverflow</h1>")

Eso sería simplemente imprimir: <h1>stackoverflow</h1>

+0

¿Cómo sería este parámetro "stackoverflow" ser? ¿Un div? –

+0

@ Bruno, solo texto. –

Respuesta

19

Se puede utilizar esta salida

@MvcHtmlString.Create(site.Replace("stackoverflow", "<h1>stackoverflow</h1>")) 

Esta voluntad la cadena html sin codificación

@(new HtmlString(site.Replace("stackoverflow", "<h1>stackoverflow</h1>"))) 

Y con el comentario de Erik Porter

+12

A partir de MVC 3 ya no necesita usar MvcHtmlString. @ (Nueva HtmlString ("

Stackoverflow

")) funcionará bien. Sin embargo, cualquier implementación de IHtmlString funcionará. Estamos considerando un asistente o un acceso directo que crearía el nuevo HtmlString para usted en el futuro. –

14

Un poco tarde, pero ahora hay un método conveniente de extensión en MVC3: Html.Raw():

@Html.Raw(site.Replace("stackoverflow", "<h1>stackoverflow</h1>")) 
+0

¿Hay alguna forma de hacer que esto funcione dentro de un ayudante declarativo (es decir, en App_Code)? Parece que todos los ayudantes de HTML están rotos allí. –