我已經將安全/通過消毒的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)