編寫/輸出未轉義的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)
相關文章
相關標籤/搜索