Jak zmienić znaczenie tekstu do użycia w języku HTML w języku C #? chcę zrobić
sample="<span>blah<span>"
i mają
<span>blah<span>
wyświetlają się jako zwykły tekst zamiast bla tylko z tagami części html :(. Używając C #, a nie ASP
using System.Web;
var encoded = HttpUtility.HtmlEncode(unencoded);
Możesz również użyć tego, jeśli nie chcesz używać
System.Web
zestawu:W tym artykule różnica między
System.Security.SecurityElement.Escape()
iSystem.Web.HttpUtility.HtmlEncode()
polega na tym, że ten pierwszy koduje również(')
znaki apostrofów .źródło
SecurityElement.Escape()
ucieczkach dla XML, który nie jest dokładnie HTML.Jeśli używasz platformy .NET 4 lub nowszej i nie chcesz odwoływać się do niej
System.Web
, możesz użyćWebUtility.HtmlEncode
fromSystem
Ma to taki sam efekt, jak
HttpUtility.HtmlEncode
i powinno być preferowaneSystem.Security.SecurityElement.Escape
.źródło
SecurityElement.Escape
działa na XML iHtmlEncode
operuje na HTML, a kodowanie XML i HTML ma nieco inne wymagania (szczegóły w tej odpowiedzi ). Na przykładSecurityElement.Escape
można go używać'
, aHtmlEncode
nie.nikt jeszcze nie wspomniał, w ASP.NET 4.0 jest do tego nowa składnia. zamiast
możesz po prostu to zrobić
czytaj więcej tutaj: 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
źródło
.NET 4.0 i nowsze:
źródło
Możesz użyć rzeczywistych tagów html
<xmp>
i</xmp>
wyprowadzić ciąg, tak jak ma to miejsce, aby pokazać wszystkie tagi pomiędzy tagami xmp.Lub możesz również użyć na serwerze
Server.UrlEncode
lubHttpUtility.HtmlEncode
.źródło
<xmp>
został wycofany dawno temu: stackoverflow.com/questions/8307846/ ... użyj<pre>
zamiast tegoNie widziałem tego tutaj
była to jedyna rzecz, która działała (asp 4.0+) w przypadku takiego kodu HTML.
'
Zostaje wygenerowana za'
(pomocą htmldecode) w HTML, powodując jego uszkodzenie:źródło
jest kilka specjalnych znaków cudzysłowu, które nie są usuwane przez HtmlEncode i nie będą wyświetlane poprawnie w Edge lub IE, jak „i„. możesz rozszerzyć zastąpienie tych znaków funkcją podobną do poniższej.
źródło
Dla tych, którzy w przyszłości szukają prostego sposobu na zrobienie tego na stronach Razor, użyj następującego:
W .cshtml:
W .cshtml.cs:
źródło