asp.net-mvc-3 razor html-encode

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))



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); }