Comment puis-je échapper du texte pour une utilisation HTML en C #? je veux faire
sample="<span>blah<span>"
et avoir
<span>blah<span>
s'affiche en texte brut au lieu de bla uniquement avec les balises faisant partie du html :(. Utilisation de C # et non d'ASP
En outre, vous pouvez utiliser ceci si vous ne souhaitez pas utiliser l'
System.Web
assembly:Selon cet article , la différence entre
System.Security.SecurityElement.Escape()
etSystem.Web.HttpUtility.HtmlEncode()
est que le premier code également les(')
caractères d' apostrophe .la source
SecurityElement.Escape()
échappements pour XML qui n'est pas exactement HTML.Si vous utilisez .NET 4 ou supérieur et que vous ne souhaitez pas faire référence
System.Web
, vous pouvez utiliser àWebUtility.HtmlEncode
partir deSystem
Cela a le même effet
HttpUtility.HtmlEncode
et doit être préféréSystem.Security.SecurityElement.Escape
.la source
SecurityElement.Escape
fonctionne sur XML etHtmlEncode
fonctionne sur HTML, et les encodages XML et HTML ont des exigences légèrement différentes (voir cette réponse pour plus de détails). Ainsi, par exemple,SecurityElement.Escape
est autorisé à utiliser'
, alors queHtmlEncode
ne l'est pas.personne n'a encore mentionné, dans ASP.NET 4.0 il existe une nouvelle syntaxe pour ce faire. au lieu de
tu peux simplement faire
en savoir plus ici: 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
la source
.NET 4.0 et supérieur:
la source
Vous pouvez utiliser des balises html réelles
<xmp>
et</xmp>
générer la chaîne telle quelle pour afficher toutes les balises entre les balises xmp.Ou vous pouvez également utiliser sur le serveur
Server.UrlEncode
ouHttpUtility.HtmlEncode
.la source
<xmp>
est obsolète depuis longtemps: stackoverflow.com/questions/8307846/… utiliser à la<pre>
placeJe n'ai pas vu ça ici
c'était la seule chose qui fonctionnait (asp 4.0+) avec du HTML comme celui-ci. Le
'
est rendu comme'
(en utilisant htmldecode) dans le html, provoquant son échec:la source
il existe des guillemets spéciaux qui ne sont pas supprimés par HtmlEncode et qui ne seront pas affichés correctement dans Edge ou IE comme "et". vous pouvez remplacer ces caractères par quelque chose comme la fonction ci-dessous.
la source
Pour ceux qui recherchent à l'avenir un moyen simple de le faire dans les pages Razor, utilisez ce qui suit:
Dans .cshtml:
Dans .cshtml.cs:
la source