Tengo HTML seguro / desinfectado guardado en una tabla DB.
¿Cómo puedo escribir este contenido HTML en una vista Razor?
Siempre escapa a personajes como <
y hacia símbolos &
.
Tengo HTML seguro / desinfectado guardado en una tabla DB.
¿Cómo puedo escribir este contenido HTML en una vista Razor?
Siempre escapa a personajes como <
y hacia símbolos &
.
@Html.Raw()
Respuestas:
Supongamos que su contenido está dentro de una cadena llamada
mystring
...Puedes usar:
Alternativamente, puede convertir su cadena a
HtmlString
cualquier otro tipo que se implementeIHtmlString
en el modelo o directamente en línea y usar regular@
:fuente
razor
sintaxis yHtml.Raw
definitivamente estoy disponible para mí.En ASP.NET MVC 3, debe hacer algo como esto:
fuente
Puedes usar
fuente
Html.Raw()
no funciona allíA veces puede ser complicado usar html sin formato. Principalmente debido a la vulnerabilidad XSS. Si eso es una preocupación, pero aún desea usar html sin procesar, puede codificar las partes aterradoras.
Resultados en
fuente
Puede poner su cadena en viewdata en el controlador de esta manera:
Y luego llame a esa vista de datos a la vista de esta manera:
fuente
Además de usar
@MvcHtmlString.Create(ViewBag.Stuff)
según lo sugerido por Dommer, le sugiero que también use la biblioteca AntiXSS como sugerencia phill http://haacked.com/archive/2010/04/06/using-antixss-as-the-default-encoder-for-asp -net.aspxCodifica casi toda la cadena de ataque XSS posible.
fuente
Ejemplo completo para usar funciones de plantilla en RazorEngine (para la generación de correo electrónico, por ejemplo):
fuente