Html.Encode
parece que simplemente llama al HttpUtility.HtmlEncode
para reemplazar unos pocos caracteres específicos html con sus secuencias de escape.ASP.NET MVC Html.Encode - Nuevas líneas
Sin embargo, esto no proporciona ninguna consideración sobre cómo se interpretarán las líneas nuevas y los espacios múltiples (espacio en blanco de marcado). Así que proporciono un área de texto para que el usuario ingrese un bloque de información de texto sin formato, y luego muestre esa información en otra pantalla (usando Html.Encode
), las líneas nuevas y el espaciado no se conservarán.
Creo que hay 2 opciones, pero tal vez haya una tercera mejor que alguien pueda sugerir.
Una opción sería que acaba de escribir un método estático que utiliza HtmlEncode, y luego reemplaza nuevas líneas en la cadena resultante con <br>
y grupos de múltiples espacios con
Otra opción sería la de enredar con el white-space: pre
atributo en mis hojas de estilo; sin embargo, no estoy seguro si esto produciría efectos secundarios cuando los métodos Html de ayuda incluyan nuevas líneas y tabulaciones para hacer que la fuente de la página sea bonita.
¿Existe una tercera opción, como un indicador global, un evento o método alternativo que pueda usar para cambiar la forma en que se realiza la codificación html sin tener que volver a hacer los métodos html helper?
La parte del controlador no se compilará. – 1kevgriff
No compila.debería ser: MvcHtmlString encoded = MvcHtmlString (HttpContext.Current.Server.HtmlEncode (Body) .Replace (Environment.NewLine, "
")); – AntonK
"El tipo 'System.Web.HttpServerUtility' no tiene constructores definidos" use HttpUtility.HtmlEncode – Benoit