如何防止在Razor(独立)中转义html?

Ext*_*xta 20 .net html asp.net-mvc razor

我有一个带有属性Content的Model,其中包含HTML字符串.

var model = new { Content = ... }
Razor.Parse(templateBody, model)
Run Code Online (Sandbox Code Playgroud)

如何使用独立Razor渲染此字符串.

我试过了:

@(new HtmlString(Model.Content))
Run Code Online (Sandbox Code Playgroud)

并且

@(HttpUtility.HtmlDecode(Model.Content))
Run Code Online (Sandbox Code Playgroud)

Model.Content渲染始终是HTML转义的.

Wah*_*tar 44

这应该工作 Html.Raw(Model.Content)

  • 简单又完美! (2认同)

Art*_*rov 17

在RazorEngine库中,特殊的"do-not-escape-me"类型是RazorEngine.Text.IEncodedString.在模板基类上使用简单的辅助方法:

 @Raw("<script>alert('!');</script>")
Run Code Online (Sandbox Code Playgroud)

要说服VS和Resharper为您提供IntelliSense,请在模板顶部添加以下行:

@inherits RazorEngine.Templating.TemplateBase
Run Code Online (Sandbox Code Playgroud)

  • 它没有像人们期望的那样使用 IHtmlString 真的很烦人。 (2认同)