How to display HTML data on ASP.Net MVC 3 – 如何顯示把資料庫上的HTML 放進 asp.net mvc 3 上

如何顯示把資料庫上的HTML 放進 asp.net mvc 3
今天開始在公司的其中一個網頁上把之前從Rich Text Editor輸入的資料顯示出來
我的做法是把資料庫的相關資料加進 ViewBag上.
E.G.
ViewBag.Notice =<h1> Share ChiWai ASP.Net MVC3 Show HTML Sample</h1>

我的 Controller

[csharp]
public ActionResult Index()
{

ViewBag.Notice = "<h1> Share ChiWai ASP.Net MVC3 Show HTML Sample</h1>";
ViewBag.NoticeNewHTMLString = new HtmlString("<h1> Share ChiWai ASP.Net MVC3 Show HTML Sample</h1>");
return View();
}

[/csharp]

之後發現出現了一個小問題..
就是這個句子整句在網頁上顯示出來..
HTML 的Markup 沒有被Render...

我便在想..是不是我應該使用HTML.Decode 來解決這個問題..
HTML.Decode也沒有什麼效果
也嘗試用 new HtmlString.. 結果也沒有分別
最後終於找到解決方法了

解決方法:
只要在cshtml中使用
html.raw便可以了

或者是在 Code Behind 使用 new HtmlString 來轉換這個HTML Markup

以下是我的cshtml:

Original:
<br />
@ViewBag.Notice
<br />
New HTML String From Code Behind:
<br />
@ViewBag.NoticeNewHTMLString
<br />
New HTML String From cshtml:
<br />
@{new HtmlString(ViewBag.Notice);}
<p />

HTML Encode:
<br />
@Html.Encode(ViewBag.Notice)
<p />
Raw HTML:
<br />

結果:

Hope you find it useful

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.