Wie entkomme ich Text für die Verwendung von HTML in C #? Ich will das tun
sample="<span>blah<span>"
und haben
<span>blah<span>
wird als einfacher Text anstelle von blah nur mit dem Tag-Teil des HTML angezeigt :(. Verwenden von C # nicht ASP
using System.Web;
var encoded = HttpUtility.HtmlEncode(unencoded);
Sie können dies auch verwenden, wenn Sie die
System.Web
Assembly nicht verwenden möchten :Gemäß diesem Artikel besteht der Unterschied zwischen
System.Security.SecurityElement.Escape()
undSystem.Web.HttpUtility.HtmlEncode()
darin, dass ersteres auch Apostrophzeichen codiert(')
.quelle
SecurityElement.Escape()
Escape für XML, das nicht genau HTML ist.Wenn Sie .NET 4 oder höher verwenden und nicht referenzieren möchten
System.Web
, können SieWebUtility.HtmlEncode
von verwendenSystem
Dies hat den gleichen Effekt wie
HttpUtility.HtmlEncode
und sollte vorgezogen werdenSystem.Security.SecurityElement.Escape
.quelle
SecurityElement.Escape
funktioniert nur mit XML undHtmlEncode
HTML, und für XML und HTML-Codierung gelten leicht unterschiedliche Anforderungen ( Einzelheiten finden Sie in dieser Antwort ). SoSecurityElement.Escape
darf zum Beispiel verwendet werden'
, während diesHtmlEncode
nicht der Fall ist.Bisher hat noch niemand erwähnt, dass es in ASP.NET 4.0 eine neue Syntax gibt. anstatt
Sie können einfach tun
Lesen Sie hier mehr: 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
quelle
.NET 4.0 und höher:
quelle
Sie können tatsächliche HTML-Tags verwenden
<xmp>
und</xmp>
die Zeichenfolge so ausgeben, wie sie ist, um alle Tags zwischen den xmp-Tags anzuzeigen.Oder Sie können auch auf dem Server
Server.UrlEncode
oder verwendenHttpUtility.HtmlEncode
.quelle
<xmp>
wurde schon vor langer Zeit veraltet: stackoverflow.com/questions/8307846/... Verwendung<pre>
stattHab das hier nicht gesehen
Es war das einzige, was funktionierte (asp 4.0+), wenn es um HTML wie dieses ging. Das
'
wird'
im HTML als (unter Verwendung von HTML-Code) gerendert , was dazu führt, dass es fehlschlägt:quelle
Es gibt einige spezielle Anführungszeichen, die von HtmlEncode nicht entfernt werden und in Edge oder IE nicht korrekt angezeigt werden, wie "und". Sie können diese Zeichen durch eine der folgenden Funktionen ersetzen.
quelle
Verwenden Sie für diejenigen, die in Zukunft nach einer einfachen Möglichkeit suchen, dies auf Razor-Seiten zu tun, Folgendes:
In .cshtml:
In .cshtml.cs:
quelle