我正在设置一个新的ASP.NET服务器,并希望放入来自我自己的过滤方法结果的HTML,因为我已经在使用自己的过滤方法。但是使用@
会使用ASP.NET的消毒方法自动对代码进行消毒,我不想要此。
我尝试使用@
符号在我的剃须刀页面中使用C#,但是它一直使用ASP.NET的消毒方法。
public string GetFormattedName(string name)
{
// Sanitize user input
return name.Replace("<",">"); // And do my own fancy sanitization.
}
<h3>@Model.GetFormattedName("<strong class="bold-tag">etc</strong>")</h3>
渲染的HTML看起来像:
<strong class="bold-tag">etc</strong>
,但应该是
etc
(作为渲染的html(
我也有一个特殊的颜色代码语法,如下所示: [color:ff0000][/color]
我希望它仍然可以工作,不是使用ASP.NET的消毒方法
只需使用html.raw
例如:
<h3>@Html.Raw(@"<strong class=""bold-tag"">etc</strong>")</h3>
应呈现为:
<h3><strong class="bold-tag">etc</strong></h3>
尝试铸造到ihtmstring。
渲染为:
<h3>@Html.Raw(Model.GetFormattedName("<strong class="bold-tag">etc</strong>"))</h3>