在錯誤中學習ASP.NET MVC 第 18 篇 - 認識View - 自訂與擴充Helper
Razor提供了很多好用的Helper,但還是沒辦法滿足所有專案的需求,所以這篇就來介紹如何自訂以及擴充Helper,下面以新增<h5>標籤為例。
自訂全站共用的Helper
專案按右鍵加入App_Code資料夾
App_Code資料夾按右鍵加入檢視,並將檔名輸入成你想要用的helper名稱
使用@helper 方法名稱,定義自己的方法以及傳入的參數
在一般檢視裡就可以叫用囉,@自訂的Helper名稱.自訂的方法,編輯完記得重建方案,這樣在檢視裡面才叫用得到。
是說<h5>就算自己打也還蠻快的啦,不過有時候套用設計師的版的時候就會想殺人,例如:
<div class="headline">
<h5>Title</h5>
</div>
只要每次用到<h5>外面就一定要多加<div>包起來,就不可能每次都自己打html了吧,要是以前我應該是不會乖乖打,只是會一直複製貼上而已XD,但透過自訂的Helper就能輕鬆解決這個問題了,而且寫法很簡單,使用起來也很方便。
擴充Helper
再來如果想要擴充HtmlHelper要怎麼做呢,以上面的例子來改寫
請在專案下新增一個"Helpers"的資料夾,不叫這名字也沒關係,主要是要存放相關的Helper類別
修改成靜態類別,再來宣告靜態的方法,回傳型別是MvcHtmlString,而且第一個參數一定要宣告this HtmlHelper型別,但呼叫的時候不需要傳入
在View裡面叫用剛剛宣告的擴充方法,記得要using命名空間,然後使用@Html.自定義的方法,如果想要顯示方法以及參數的說明請參考這篇,使用文件註解標籤。
若是遇到需要動態產生html的情況可以使用TagBuilder來建立html
如果覺得每個View都要using自訂的hepler命名空間太麻煩,可以參考這篇的Web.config設定。
留言
張貼留言