中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

ASP.NET MVC @Helper輔助方法和@functons自定義函數的使用方法
來源:易賢網 閱讀:1064 次 日期:2016-08-10 15:22:50
溫馨提示:易賢網小編為您整理了“ASP.NET MVC @Helper輔助方法和@functons自定義函數的使用方法”,方便廣大網友查閱!

本文主要介紹ASP.NET MVC中使用@Helper和@functons自定義一些代碼片段,方便視圖調用,從而達到減少重復代碼,快速開發的目的,希望對大家有所幫助。

ASP.NET Razor 視圖具有.cshtml后綴,可以輕松的實現c#代碼和html標簽的切換,大大提升了我們的開發效率。但是Razor語法還是有一些棉花糖值得我們了解一下,可以更加強勁的提升我們的開發效率,減少開發bug的出現。

Razor 采用的是@尾巴符號,正是這個符號成就了MVC開發效率的提升。下面了解一下和@相關的兩個可以重用的helper、functions。

作為現代化的程序員,我們盡可能的遵守一個原則.不要重復你自己。所以能夠重構的代碼我們都會合并,但是這是對于后臺代碼C#來說的,對于在View層 也可以進行一些簡單的業務邏輯,當然View層可以進行復雜的業務邏輯判斷,但是前輩說復雜的業務邏輯是Model或Controller的工作,View層的任務就是展示,業務邏輯應當是越少越好。

在View層進行的一些重構有哪些呢?其中一個就是@helper  自定義片段。

比如說我們要輸出一個數字,如果為0的話就輸出不存在,如果為其他數字就輸出存在,當然這個在強大的Razor語法下很容易的就可以搞定。

@(ViewBag.IsEnabled == "0" ? "不存在" : "存在")

但是如果當前頁面有很多這樣的相同邏輯的判斷會怎么樣呢?聰明的程序員肯定知道不能重復你自己的原則,所以我們就要進行重構,但是在View層怎么進行重構呢?使用@helper可以解決這個問題。

@helper Show(int count)

{

  if (count == 0)

  {

    @:存在

  }

  else

  {

    @:不存在

  }

}

@(ViewBag.IsEnabled == 0 ? "不存在" : "存在")<br>@Show(0)    @*調用helper*@

這樣我們在當前頁面多個位置進行調用來輸出,如果要修改可以修改一部分,而不至于全部都要修改。

還有就要說了,我要在其他頁面也使用這個helper怎么辦呢?當然辦法還是有的,在app_code文件夾下添加一個視圖文件(假定為UIHelper.cshtml),將helper代碼復制,然后在需要調用的View頁面通過@UIHelper.Show(0)  來調用。因為app_code文件夾下的文件最終會被編譯成類。

總結:我們總結一下要實現根據不同情況進行輸出有多少種實現方式,當然我能想到的不會完全。

1.通過helper進行全局的設置,讓所有需要判斷的頁面都調用這個helper方法。

2.在后臺代碼判斷,然后輸出到前臺View。

3.通過Html.Action()或Html.Partial()來獲取,當然如果簡單的還是采用helper,復雜的可以采用這種方式。

4.通過自定義函數Functions來實現。

自定義函數@functions  ,自定義函數式采用c#的語法來實現的代碼復用,只不過這個函數可以將html標簽輸出到頁面。

//自定義函數@functions

@functions{

  public IHtmlString Get(int count)

  {

    string result = "";

    if (count == 0)

    {

      result = "不存在";

    }

    else

    {

      result = "存在";

    }

    return new HtmlString(result);

  }

}

@Get(0)  //調用的自定義函數

請注意,@functions 對應的是Razor的代碼段,需要添加{},并且functions內部是正規的c#方法。

如果要在多個頁面同時使用這個functions,可以將這個方法移植到app_code中,假定文件名為UIHelper.cshtml。并且里面的方法必須定義為靜態的。這個很好理解,UIHelper相當于類名,而其中的functions就相當于方法,如果要通過類名.方法名來進行調用,則必須將方法定義成靜態的。

UIHelper.cshtml文件代碼

@helper ShowUnit(int count)

{

  if (count == 0)

  {

    @:免費

    }

  else

  {

    @count

  }

}

@functions {

  public static IHtmlString Check(int count)

  {

    string result = "";

    if (count == 0)

    {

      result = "fsdfsdfsdfd";

    }

    else

    {

      result = count.ToString();

    }

    return new HtmlString(result);

  }

}

//自定義函數@functions

@functions{

  public static IHtmlString Get(int count)

  {

    string result = "";

    if (count == 0)

    {

      result = "不存在";

    }

    else

    {

      result = "存在";

    }

    return new HtmlString(result);

  }

}

總結:helper針對的是直接輸出html內容并且具有簡單的邏輯的情況,并且helper沒有任何返回值,而functions自定義函數則要強大很多,如果functions需要返回html內容,那么返回值是IHtmlString類型,如果不需要返回值,則可以設置為void,但是如果沒有返回值也就失去了定義function的意義,所以一般返回值均為IHtmlString。對于View層的重構,我們可以采用helper和自定義函數functions的方式來實現。

補充:當在頁面中引入新類型的時候,可能命名空間很長,導致頁面間好多重復代碼,可以在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>

更多信息請查看網絡編程
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
欧美黄色免费| 亚洲欧美精品伊人久久| 久久伊人免费视频| 午夜精品福利一区二区蜜股av| 亚洲人成在线播放| 日韩视频永久免费观看| 欧美专区福利在线| 欧美日韩国产在线观看| 狠狠色狠狠色综合系列| 亚洲欧美日韩国产中文| 欧美精品在线免费播放| 国模大胆一区二区三区| 中文在线一区| 欧美黄色一区| 国产欧美一区二区色老头| 在线观看成人av电影| 一本大道久久a久久精二百| 久久国产精彩视频| 欧美激情在线狂野欧美精品| 国产伦理精品不卡| 亚洲精品国产精品国自产在线 | 一区二区三区四区在线| 亚洲一区二区精品| 欧美久久久久久蜜桃| 精品成人一区| 午夜精品久久久久| 欧美剧在线观看| 亚洲大胆人体视频| 欧美一区二区三区在线观看| 一色屋精品视频免费看| 亚洲一区久久久| 欧美日韩亚洲一区三区| 激情成人在线视频| 久久精品伊人| 国产精品日本精品| 翔田千里一区二区| 国产精品成人va在线观看| 99re66热这里只有精品3直播| 久久精品国产亚洲精品| 国产日韩精品视频一区| 亚洲国产综合91精品麻豆| 蜜桃久久av一区| 国产亚洲综合精品| 久久久精品性| 激情久久五月| 久久精品日韩一区二区三区| 国产精品日韩欧美综合| 欧美一区2区三区4区公司二百| 欧美成人一区二免费视频软件| 黄色国产精品| 国产丝袜一区二区| 亚洲女同精品视频| 国产日韩成人精品| 久久久久久久综合色一本| 国产欧美 在线欧美| 午夜久久美女| 一区二区视频免费在线观看| 欧美在线一二三四区| 在线观看日韩专区| 欧美午夜精品理论片a级按摩 | 国产精品久久| 亚洲综合日韩在线| 国产精品影音先锋| 久久手机免费观看| 一区二区日韩欧美| 国产欧美日韩视频一区二区三区| 久久综合免费视频影院| 一区二区三区产品免费精品久久75| 亚洲乱码国产乱码精品精天堂| 国产精品看片资源| 久久精品国产精品亚洲综合| 日韩一二三在线视频播| 国产欧美日韩免费| 欧美人与性动交cc0o| 久久国产福利| 妖精成人www高清在线观看| 国产日韩欧美制服另类| 欧美日韩视频在线一区二区观看视频 | 欧美区高清在线| 亚洲欧洲一区| 国产亚洲欧洲| 欧美日韩一区二区三区| 久久综合久久综合九色| 亚洲欧美日韩视频二区| 一区二区三区视频在线观看| 黑人一区二区三区四区五区| 欧美日韩在线一区二区| 农村妇女精品| 久久免费偷拍视频| 久久国产精品亚洲77777| 亚洲视频欧美视频| 亚洲精品视频一区二区三区| 在线日韩欧美| 伊人一区二区三区久久精品| 国产一区二区视频在线观看| 国产精品网站视频| 国产精品一区二区三区四区| 欧美午夜精品理论片a级按摩| 欧美黄色免费| 欧美激情在线狂野欧美精品| 免费日本视频一区| 久久综合99re88久久爱| 久久嫩草精品久久久精品一| 久久综合久色欧美综合狠狠| 久久青草福利网站| 欧美不卡视频一区发布| 久久综合图片| 蜜桃精品久久久久久久免费影院| 久久亚洲综合色| 欧美jjzz| 国产精品v片在线观看不卡| 国产精品theporn| 国产精品男女猛烈高潮激情| 国产一区二区无遮挡| 伊人久久大香线| 亚洲日韩第九十九页| 一本高清dvd不卡在线观看| 亚洲在线免费| 欧美激情一区二区三区四区| 欧美成人第一页| 欧美黄网免费在线观看| 欧美日精品一区视频| 国产精品一卡| 亚洲大片免费看| 亚洲精品欧美日韩专区| 一区二区欧美在线| 久久福利影视| 欧美日韩国产小视频在线观看| 国产精品久久久久永久免费观看| 国产欧美亚洲视频| 亚洲国产欧美一区| 亚洲小说欧美另类社区| 久久久九九九九| 欧美日韩三级在线| 国产亚洲欧美日韩美女| 亚洲日本理论电影| 欧美一区二区福利在线| 女人天堂亚洲aⅴ在线观看| 国产精品毛片大码女人| 亚洲成人在线视频网站| 亚洲一区美女视频在线观看免费| 久久久免费av| 欧美国产精品中文字幕| 国产欧美日韩专区发布| 日韩视频一区二区三区在线播放免费观看| 亚洲欧美日韩第一区| 欧美插天视频在线播放| 国产亚洲精品激情久久| 日韩亚洲欧美一区| 欧美一区二区视频免费观看| 欧美日韩免费区域视频在线观看| 国产一区二区观看| av成人免费在线| 欧美国产日韩xxxxx| 国产精品永久| 亚洲精品小视频在线观看| 亚洲一区二区视频| 欧美国产第一页| 韩日视频一区| 午夜精品久久久久久久蜜桃app| 欧美xart系列高清| 国产欧美一区二区精品性| 日韩视频中文| 欧美区日韩区| 9人人澡人人爽人人精品| 狼狼综合久久久久综合网| 国产欧美日韩视频在线观看| 亚洲午夜视频在线观看| 欧美精品综合| 亚洲精选视频在线| 美女主播视频一区| 一区二区三区亚洲| 快she精品国产999| 原创国产精品91| 久久性色av| 欧美在线日韩| 国产精品v日韩精品v欧美精品网站| 最近看过的日韩成人| 欧美成人性网| 亚洲免费不卡| 欧美日韩在线精品| 亚洲视频二区| 国产一区白浆| 蜜臀va亚洲va欧美va天堂| 亚洲精品一区二区三区99| 欧美日韩亚洲不卡| 亚洲欧美色一区| 国产在线成人| 女人香蕉久久**毛片精品| 亚洲精品一区二区三| 欧美三级电影一区| 亚洲女人天堂成人av在线| 国产日韩成人精品| 免费欧美日韩| 国产精品99久久久久久有的能看| 国产精品卡一卡二卡三| 欧美一区二区免费| 国产偷国产偷精品高清尤物| 免费观看亚洲视频大全| 99re66热这里只有精品3直播|