¿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.Webensamblaje: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.HtmlEncodedesdeSystemEsto tiene el mismo efecto que
HttpUtility.HtmlEncodey debería preferirse sobreSystem.Security.SecurityElement.Escape.fuente
SecurityElement.Escapeopera en XML yHtmlEncodeopera en HTML, y la codificación XML y HTML tiene requisitos ligeramente diferentes (vea esta respuesta para más detalles). Entonces, por ejemplo,SecurityElement.Escapeestá permitido usar', mientrasHtmlEncodeque 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.UrlEncodeoHttpUtility.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