@Helper輔助方法和@functions自定義函數
阿新 • • 發佈:2018-04-12
技術分享 blog cat function cnblogs mod con 頁面 -s
1、首先說下@helper輔助方法,當我們在多個視圖中共用相同的方法的時候,可以把此方法剝離出來放到一個位置,此時就可以用到@Helper輔助方法,首先我們在解決方案右鍵添加
App_Code文件夾,然後添加一個cshtml文件,清空原有文件內容,然後把自定義的方法放進去,例如
@helper Show(int i) { if(i==1) { @:值為1 } else { @:值為其他 } }
2、當我們想實現更復雜的邏輯,比如想有返回值的時候可以通過@functions關鍵字來自定義函數,如下
@functions{ public static IHtmlString GetYesterday() { var theDay = DateTime.Now.AddDays(-1); return new HtmlString(theDay.ToString()); } }
註意這個地方一定得用static關鍵字來修飾,否則其他頁面通過類調用不到這個方法,並且返回到視圖的返回值類型必須定義為IHtmlString.
補充:當在頁面中引入新類型的時候,可能命名空間很長,導致頁面間好多重復代碼,可以在view頁面的開始位置導入命名空間,
如下:@model IEnumrable<MVC.Test.Animal>可以改為
@using MVC.Test
@model IEnumrable<Animal>;
當所有view頁面都會引入相同的命名空間的時候,可以采取一種方式避免每個頁面都要用@using來引入,在Views目錄下有web.config文檔,可以在此文檔下的
<system.web.webPages.razor>區段加入每個頁面都會用到的命名空間,如下:
<system.web.webPages.razor> <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> <pages pageBaseType="System.Web.Mvc.WebViewPage"> <namespaces> <add namespace="System.Web.Mvc" /> <add namespace="System.Web.Mvc.Ajax" /> <add namespace="System.Web.Mvc.Html" /> <add namespace="System.Web.Optimization"/> <add namespace="System.Web.Routing" /> <add namespace="WebApplication1" /> </namespaces> </pages> </system.web.webPages.razor>
http://www.cnblogs.com/developersupport/p/WebAPI-Security.html
@Helper輔助方法和@functions自定義函數