Как предотвратить утечку html в Razor (автономный)?
У меня есть модель с содержимым Content, содержащая HTML-строку.
var model = new { Content = ... }
Razor.Parse(templateBody, model)
Как я могу сделать эту строку с помощью автономной Razor.
Я пробовал:
@(new HtmlString(Model.Content))
а также
@(HttpUtility.HtmlDecode(Model.Content))
Model.Content визуализирует HTML-экранирование.
Ответы
Ответ 1
В библиотеке RazorEngine специальный тип "do-not-escape-me" RazorEngine.Text.IEncodedString
. Используйте простой вспомогательный метод в базовом классе шаблонов:
@Raw("<script>alert('!');</script>")
Чтобы убедить VS и Resharper дать вам IntelliSense, добавьте следующую строку в начало шаблона:
@inherits RazorEngine.Templating.TemplateBase
Ответ 2
это должно работать Html.Raw(Model.Content)