原來在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
顯示
但是這不是我們要的結果。
正確的話應該是要這樣的:
@(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))