У меня есть безопасный / санированный HTML, сохраненный в таблице БД.
Как я могу записать этот HTML-контент в виде Razor?
Он всегда избегает таких символов, как <
и амперсанды &
.
У меня есть безопасный / санированный HTML, сохраненный в таблице БД.
Как я могу записать этот HTML-контент в виде Razor?
Он всегда избегает таких символов, как <
и амперсанды &
.
@Html.Raw()
Ответы:
Предположим, что ваш контент находится внутри строки с именем
mystring
...Ты можешь использовать:
В качестве альтернативы вы можете преобразовать вашу строку в
HtmlString
любой другой тип, который реализуетсяIHtmlString
в модели или непосредственно в строку, и использовать обычный@
:источник
razor
синтаксисом иHtml.Raw
определенно доступна для меня.В ASP.NET MVC 3 вы должны сделать что-то вроде этого:
источник
Ты можешь использовать
источник
Html.Raw()
там не работаетИногда бывает сложно использовать сырой HTML. Главным образом из-за уязвимости XSS. Если это проблема, но вы все еще хотите использовать сырой HTML, вы можете кодировать страшные части.
Результаты в
источник
Вы можете поместить вашу строку в viewdata в контроллере следующим образом:
А затем вызовите эти viewdata в виде, как это:
источник
Помимо использования
@MvcHtmlString.Create(ViewBag.Stuff)
в соответствии с предложением Dommer, я предлагаю вам также использовать библиотеку AntiXSS в качестве рекомендуемого файла http://haacked.com/archive/2010/04/06/using-antixss-as-the-default-encoder-for-asp -net.aspxОн кодирует почти все возможные строки атаки XSS.
источник
Полный пример использования шаблонных функций в RazorEngine (например, для генерации электронной почты):
источник