Как мне избежать текста для использования HTML в C #? я хочу делать
sample="<span>blah<span>"
и имеют
<span>blah<span>
отображаться как обычный текст вместо бла только с тегами часть HTML :(. Использование C # не ASP
using System.Web;
var encoded = HttpUtility.HtmlEncode(unencoded);
Кроме того, вы можете использовать это, если вы не хотите использовать
System.Web
сборку:Согласно этой статье , разница между
System.Security.SecurityElement.Escape()
иSystem.Web.HttpUtility.HtmlEncode()
заключается в том, что первый также кодирует(')
символы апострофа .источник
SecurityElement.Escape()
ускользает от XML, который не совсем HTML.Если вы используете .NET 4 или выше и не хотите ссылаться
System.Web
, вы можете использоватьWebUtility.HtmlEncode
изSystem
Это имеет тот же эффект, что
HttpUtility.HtmlEncode
и должно быть предпочтительнымSystem.Security.SecurityElement.Escape
.источник
SecurityElement.Escape
работает на XML иHtmlEncode
работает на HTML, а XML и HTML-кодирование предъявляют немного разные требования (подробности см. В этом ответе ). Так, например,SecurityElement.Escape
разрешено использовать'
, покаHtmlEncode
нет.никто еще не упомянул, в ASP.NET 4.0 есть новый синтаксис для этого. вместо того
ты можешь просто сделать
читайте больше здесь: http://weblogs.asp.net/scottgu/archive/2010/04/06/new-lt-gt-syntax-for-html-encoding-output-in-asp-net-4-and- жерех-нетто-MVC-2.aspx
источник
.NET 4.0 и выше:
источник
Вы можете использовать фактические HTML-теги
<xmp>
и</xmp>
вывести строку как есть, чтобы показать все теги между тегами xmp.Или вы также можете использовать на сервере
Server.UrlEncode
илиHttpUtility.HtmlEncode
.источник
<xmp>
давно устарел: stackoverflow.com/questions/8307846/… используйте<pre>
вместо этогоНе видел это здесь
это было единственное, что работало (asp 4.0+) при работе с html подобным образом.
'
Получает отображается как'
( с использованием htmldecode) в HTML, вызывая его на провал:источник
есть некоторые специальные символы кавычек, которые не удаляются HtmlEncode и не будут правильно отображаться в Edge или IE, например »и«. Вы можете заменить эти символы на что-то вроде функции ниже.
источник
Для тех, кто в будущем ищет простой способ сделать это на страницах Razor, используйте следующее:
В .cshtml:
В .cshtml.cs:
источник