编写/输出未转义的HTML字符串

我已经将安全/通过消毒的HTML保存在数据库表中。 html

如何在Razor视图中写出HTML内容? 数据库

它始终会转义<和&字符等转义符&amp;安全


#1楼

您能够使用this

@{ WriteLiteral("html string"); }

#2楼

您能够像这样将字符串放入控制器的viewdata中: 编码

ViewData["string"] = DBstring;

而后像这样在视图中调用该viewdata: spa

@Html.Raw(ViewData["string"].ToString())

#3楼

有时使用原始html可能很棘手。 主要是由于XSS漏洞。 若是这是一个问题,可是您仍然想使用原始html,则能够对这些使人恐惧的部分进行编码。 code

@Html.Raw("(<b>" + Html.Encode("<script>console.log('insert')</script>" + "Hello") + "</b>)")

结果是 htm

(<b>&lt;script&gt;console.log('insert')&lt;/script&gt;Hello</b>)

#4楼

假设您的内容在名为mystring的字符串中... ip

您能够使用: 字符串

@Html.Raw(mystring)

或者,您能够将字符串转换为HtmlString或任何其余在模型中或直接内联实现IHtmlString类型,并使用常规@

@{ var myHtmlString = new HtmlString(mystring);}
@myHtmlString

#5楼

在ASP.NET MVC 3中,您应该执行如下操做:

// Say you have a bit of HTML like this in your controller:
ViewBag.Stuff = "<li>Menu</li>"
//  Then you can do this in your view:
@MvcHtmlString.Create(ViewBag.Stuff)
相关文章
相关标签/搜索