В. NET Framework версии ASP. NET можно было передать IHtmlString
в HttpUtility.HtmlEncode
. Когда я пробую то же самое в. NET Core, я получаю двойное кодирование.
HttpUtility.HtmlEncode(new HtmlString("<b>x</b>"))
приводит к:
"<b>x</b>"
Как я могу избежать этого двойного кодирования?
Это консольное приложение, поэтому я не могу просто использовать синтаксис Razor @
. Я должен вызвать некоторый вспомогательный метод фреймворка.
В реальном сценарии я пытаюсь создать вспомогательный метод, который создает HTML следующим образом:
string GetBold(object content) => "<b>" + HttpUtility.HtmlEncode(content) + "</b>";
GetBold
должно быть в состоянии чтобы взять уже закодированный контент в виде IHtmlString
, или он должен принять любое другое значение и закодировать его. Это прекрасно работало на. NET Framework.