我已经将安全/通过消毒的HTML保存在数据库表中。 html
如何在Razor视图中写出HTML内容? 数据库
它始终会转义<
和&字符等转义符&
。 安全
您能够使用this
@{ WriteLiteral("html string"); }
您能够像这样将字符串放入控制器的viewdata中: 编码
ViewData["string"] = DBstring;
而后像这样在视图中调用该viewdata: spa
@Html.Raw(ViewData["string"].ToString())
有时使用原始html可能很棘手。 主要是由于XSS漏洞。 若是这是一个问题,可是您仍然想使用原始html,则能够对这些使人恐惧的部分进行编码。 code
@Html.Raw("(<b>" + Html.Encode("<script>console.log('insert')</script>" + "Hello") + "</b>)")
结果是 htm
(<b><script>console.log('insert')</script>Hello</b>)
假设您的内容在名为mystring
的字符串中... ip
您能够使用: 字符串
@Html.Raw(mystring)
或者,您能够将字符串转换为HtmlString
或任何其余在模型中或直接内联实现IHtmlString
类型,并使用常规@
:
@{ var myHtmlString = new HtmlString(mystring);} @myHtmlString
在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)