@Helper輔助方法和@functions自定義函數


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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM