asp.net mvc 3 - Mostrar html codificado con maquinilla de afeitar
asp.net-mvc-3 razor (5)
Guardo HTML codificado en la base de datos.
Imho no debe almacenar sus datos html-codificados en la base de datos. Simplemente almacene en texto sin formato (no codificado) y solo muestre sus datos de esta manera y su html se codificará automáticamente:
<div class=''content''>
@Model.Content
</div>
Guardo HTML codificado en la base de datos.
La única forma en que podría mostrarlo correctamente es:
<div class=''content''>
@MvcHtmlString.Create(HttpUtility.HtmlDecode(Model.Content));
</div>
Es feo ¿Hay alguna forma mejor de hacer esto?
Prueba esto:
<div class=''content''>
@Html.Raw(HttpUtility.HtmlDecode(Model.Content))
</div>
También puede simplemente usar la clase HtmlString
@(new HtmlString(Model.Content))
Use Html.Raw()
. Phil Haack publicó una guía de sintaxis agradable en http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx .
<div class=''content''>
@Html.Raw( Model.Content )
</div>
esto es bastante simple:
HttpUtility.HtmlDecode(Model.Content)
Otra solución, también puede devolver un HTMLString, Razor mostrará el formato correcto:
en la vista misma:
@Html.GetSomeHtml()
en el controlador:
public static HtmlString GetSomeHtml()
{
var Data = "abc<br/>123";
return new HtmlString(Data);
}