2012-01-29 24 views
17

Estoy en un proceso de actualización de un proyecto C# MVC2 en C# MVC4.codificación HTML decode C# MVC4

Aquí es el escenario en el MVC2

La cadena de entrada (base de datos)

Model.text="<p>Hi<br>hello!<br>you there</p>" 

salida (dictada en la vista) representar con

<%=Model.text %> 

Hi 
hello! 
you there 

Aquí es el escenario en MVC4

La cadena de entrada (base de datos)

Model.text="<p>Hi<br>hello!<br>you there</p>" 

salida (dictada en la vista) rendido usando

@Model.text 

<p>Hi<br>hello!<br>you there</p> 

me trató

@HttpUtility.HtmlDecode(Model.text) 
@HttpUtility.HtmlEncode(Model.text) 

Nada ayuda ...

Tuve un problema similar en MVC4 asked here (el resultado ajax se representa con etiquetas html, no el html real)

¿Alguna de mis configuraciones me molesta ??? o tiene algo que ver con HTML 5 o me falta algo en el uso de MVC4. Por favor ayuda !!

Respuesta

35

Esto debe hacer el truco:

@Html.Raw(Model.text) 
+1

Gracias Justin !! Eso ayudó ... Esto también resolvió el problema en el enlace http://stackoverflow.com/questions/8956992/ajax-pager-not-working-in-mvc4 – Gokul

5

Si no desea que su texto codificado conseguir, que el texto debe ser de tipo IHtmlString. Los textos de cadena están codificados por defecto.

En su caso,

Model.text = MvcHtmlString.Create("<p>Hi<br>hello!<br>you there</p>"); 

que hacer el truco también.

1

En el lado del controlador

viewbag.msg="hello"; 

en la vista de la maquinilla de afeitar html.cs

@Html.Raw(viewbag.msg) 
+0

gracias por editar –