¿Cómo escapo el texto para el uso de HTML en C #? quiero hacer
sample="<span>blah<span>"
y tiene
<span>blah<span>
aparecer como texto sin formato en lugar de bla solo con las etiquetas que forman parte del html :(. Usar C # no ASP
using System.Web;
var encoded = HttpUtility.HtmlEncode(unencoded);
Además, puede usar esto si no desea usar el
System.Web
ensamblaje:Según este artículo , la diferencia entre
System.Security.SecurityElement.Escape()
ySystem.Web.HttpUtility.HtmlEncode()
es que el primero también codifica(')
caracteres de apóstrofe .fuente
SecurityElement.Escape()
escapes para XML que no es exactamente HTML.Si está utilizando .NET 4 o superior y no desea hacer referencia
System.Web
, puede usarWebUtility.HtmlEncode
desdeSystem
Esto tiene el mismo efecto que
HttpUtility.HtmlEncode
y debería preferirse sobreSystem.Security.SecurityElement.Escape
.fuente
SecurityElement.Escape
opera en XML yHtmlEncode
opera en HTML, y la codificación XML y HTML tiene requisitos ligeramente diferentes (vea esta respuesta para más detalles). Entonces, por ejemplo,SecurityElement.Escape
está permitido usar'
, mientrasHtmlEncode
que no.nadie ha mencionado aún, en ASP.NET 4.0 hay una nueva sintaxis para hacer esto. en vez de
simplemente puedes hacer
Lea más aquí: http://weblogs.asp.net/scottgu/archive/2010/04/06/new-lt-gt-syntax-for-html-encoding-output-in-asp-net-4-and- asp-net-mvc-2.aspx
fuente
.NET 4.0 y superior:
fuente
Puede usar etiquetas html reales
<xmp>
y</xmp>
generar la cadena como se muestra para mostrar todas las etiquetas entre las etiquetas xmp.O también puede usar en el servidor
Server.UrlEncode
oHttpUtility.HtmlEncode
.fuente
<xmp>
ha quedado en desuso hace mucho tiempo: stackoverflow.com/questions/8307846/… use<pre>
en su lugarNo vi esto aquí
fue lo único que funcionó (asp 4.0+) al tratar con html como este. El
'
se procesa como'
(usando htmldecode) en el html, lo que hace que falle:fuente
hay algunos caracteres de comillas especiales que HtmlEncode no elimina y no se mostrarán en Edge o IE correctamente como "y". puede reemplazar estos caracteres con algo como la siguiente función.
fuente
Para aquellos en el futuro que buscan una manera simple de hacer esto en las páginas de Razor, use lo siguiente:
En .cshtml:
En .cshtml.cs:
fuente