ASP.NET MVC - 定義Razor 全域 helper function

限量在 ASP.NET MVC - 使用Razor自訂HtmlHelper元件 這篇提到如何在Html Helper中自訂一個Razor使用的元件。接著這篇要介紹一個類似的用法,就是在 cshtml 檔案裡定義Razor使用的全域 helper function


在介紹如何使用前先來看看這兩者之間的差異:



HtmlHelper function
Razor helper function
撰寫位置
cs
cshtml
使用方式
@Html.XXX
@{檔案名稱}.XXX
輸出方式
MvcHtmlString
html
範圍
只要usingHelpernamspace即可使用
全域,專案內的所有cshtml皆可使用
使用時機
需要進行後端複雜邏輯運算
單純Html元件組合

下面就來看看如何宣告Razor helper function


1. 在專案下建立一個名稱為 "App_Code" 的資料夾,並建立一個 cshtml 檔案。




2. 在建立的 cshtml 檔案內撰寫 Razor helper function,範例如下。
@helper ReCaptchaWidget() 
{
    <div class="g-recaptcha" data-sitekey="6Le_GAETAAAAAEabMGnbfZWSd3hpxH-szWXF__Sx"></div>

}

3. 在專案內的任意 cshtml 裡就可以直接使用剛剛建立的 Razor helper function。




4. 執行結果。



上面範例是限量正在Try的Google reCaptcha,在這篇就先偷偷放出一點執行的截圖,詳細的實作就要等限量研究完整再來分享。  XD


參考來源:
ASP.NET MVC 3 and the @helper syntax within Razor






留言