[ASP.NET MVC]輸出HTML

| Comments

原來在ASP.NET MVC 要輸出文字時,會幫你自動的轉成可以在HTML顯示的符號,很聰明,但是剛剛遇到一個問題就是我是要輸出一個JS,所以裡面有單引號跟雙引號,就是不想讓他輸出成HTML顯示的文字,一般來說我們要將文字從Controller輸出至View時應該會這樣的:

Controller

   1: public ActionResult test()

   2: {

   3:    StringBuilder str = new StringBuilder();

   4:     str.Append("<script type=\"text/javascript\">");

   5:     str.Append("alert('我要顯示出來~~~');");

   6:     str.Append("</script>");

   7:     ViewBag.Str = str.ToString();

   8:     return View();

   9: } 

View

   1: @{

   2:     ViewBag.Title = "test";

   3: }

   4:  

   5: <h2>test</h2>

   6: @ViewBag.Str

顯示

image

image

但是這不是我們要的結果。

正確的話應該是要這樣的:

@(new HtmlString(ViewBag.Str))

或著

@Html.Raw(ViewBag.Str)

   1: @{

   2:     ViewBag.Title = "test";

   3: }

   4:  

   5: <h2>test</h2>

   6:  

   7: @(new HtmlString(ViewBag.Str))

image

image