Using Html.Raw() method to show content include Html tags in .NET MVC(under Razor ViewEngine)


在.NET MVC中如果使用Razor作為ViewEngine 我們最常用來輸出一個model的參數的用法應該就是@了,這邊來介紹如何輸出包含HTML Tag的內容

詳細的說明與用法可以參考Demo大的ASP.NET MVC3 Razor 初心者容易遇到的問題

這邊要講的是如果你今天model的參數是一個包含HTML Tag的內容,如:

<a hef="http://www.google.com.tw">click me</a>

或是

&#60;a hef=&#34;http://www.google.com.tw&#34;&#62;click me&#60;/a&#62;

*上例HTML特殊字元encode可參考W3school的HTML ISO-8859-1 Reference

上面兩個如果你直接使用@將其直印出的話就變成畫面上直接出現你的內容值,這邊用印出一個空白non-breaking space( )為例:

在View裡面的寫法如果是下面這樣

<td class="align-l">
    @item.BaseCurrencySymbol
</td>

code1

印出內容1

如果改用Html.Raw()來輸出值的話

<td class="align-l">
    @Html.Raw(item.BaseCurrencySymbol)
</td>

code2

印出內容2

從上面就可以明顯看出差異了,這邊再來看一下官方文件的解說(原文內容)。

###HtmlHelper.Raw Method (String)

Returns markup that is not HTML encoded.

  • Namespace: System.Web.Mvc

  • Assembly: System.Web.Mvc (in System.Web.Mvc.dll)

如果你有使用類似CKEditor這種編輯器plugin的話就一定要記得將輸出改為Html.Raw()的方式來轉換,避免直接將encode的Html Tag印出


作者: Blackie
版權聲明: 本站所有文章除特別聲明外,均採用 CC BY 4.0 許可協議。轉載請註明來源 Blackie !
 上一篇
App_Code is Evil in Web Application Project App_Code is Evil in Web Application Project
最近在新的專案上使用了WebAPI開發一些服務,結果因為以前的壞習慣讓我直接下意識地開了App_Code的資料夾並在資料夾內放了一些會常用到的Utilc或Common類型的class或static method。 機車的是當我build過後
2013-12-15
下一篇 
Use NonAction Attribute to Hide Controller in .NET MVC Routing Table Use NonAction Attribute to Hide Controller in .NET MVC Routing Table
如果我們想要讓某一個Controller中的Action不要在路由表內被註冊的時候就可以透過NonAction的方式來實現
2013-11-04
  目錄