婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > ASP.NET MVC @Helper輔助方法和@functons自定義函數的使用方法

ASP.NET MVC @Helper輔助方法和@functons自定義函數的使用方法

熱門標簽:遂寧市地圖標注app 代理接電話機器人如何取消 地圖標注專業團隊 地圖定位圖標標注 濮陽外呼電銷系統怎么樣 400電話辦理哪家性價比高 地圖標注的公司有哪些 天心智能電銷機器人 塔城代理外呼系統

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 ? "不存在" : "存在")
@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 IEnumrableMVC.Test.Animal>可以改為

@using MVC.Test

@model IEnumrableAnimal>;

當所有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>
您可能感興趣的文章:
  • 解決asp.net mvc UpdateModel更新對象后出現null問題的方法
  • ASP.NET MVC命名空間時引起錯誤的解決方法
  • ASP.NET MVC實現儀表程序
  • ASP.NET Mvc開發之EF延遲加載
  • ASP.NET Mvc開發之查詢數據
  • ASP.NET Mvc開發之刪除修改數據
  • ASP.NET MVC中HtmlHelper控件7個大類中各個控件使用詳解
  • 詳解ASP.NET MVC Form表單驗證
  • ASP.NET MVC4 HtmlHelper擴展類,實現分頁功能
  • asp.net MVC利用自定義ModelBinder過濾關鍵字的方法(附demo源碼下載)
  • ASP.NET MVC使用ActionFilterAttribute實現權限限制的方法(附demo源碼下載)

標簽:本溪 汕頭 宜春 麗江 重慶 婁底 吉林 河南

巨人網絡通訊聲明:本文標題《ASP.NET MVC @Helper輔助方法和@functons自定義函數的使用方法》,本文關鍵詞  ASP.NET,MVC,@Helper,輔助,方法,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ASP.NET MVC @Helper輔助方法和@functons自定義函數的使用方法》相關的同類信息!
  • 本頁收集關于ASP.NET MVC @Helper輔助方法和@functons自定義函數的使用方法的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    久久精品视频一区二区| 91在线无精精品入口| 337p亚洲精品色噜噜| 欧美福利视频导航| 欧美三级视频在线观看| 56国语精品自产拍在线观看| 欧美日本在线一区| 国产精品不卡在线观看| 久久精品视频在线免费观看 | 欧美日本乱大交xxxxx| 欧美乱妇20p| 制服.丝袜.亚洲.中文.综合| 久久综合久久99| 亚洲色图在线播放| 午夜不卡在线视频| 一区二区三区在线观看视频| 亚洲美腿欧美偷拍| 精品在线一区二区| 欧美午夜在线一二页| 欧美精品一区二区久久久| 国产精品国产三级国产aⅴ原创 | 91视视频在线观看入口直接观看www| 91社区在线播放| 日本一区二区三区电影| 色婷婷综合久久久中文字幕| 日韩欧美一区电影| 亚洲精品大片www| www.亚洲国产| 亚洲国产wwwccc36天堂| 亚洲香蕉伊在人在线观| av在线不卡电影| 欧美成人在线直播| 奇米在线7777在线精品| 欧美日韩中文一区| 亚洲电影欧美电影有声小说| 波多野结衣欧美| 中文字幕一区二区在线观看| 久久精品亚洲一区二区三区浴池| 六月丁香婷婷久久| 69成人精品免费视频| 综合中文字幕亚洲| 91激情五月电影| 视频一区免费在线观看| 久久激情五月婷婷| 亚洲成a人在线观看| 99国产精品99久久久久久| 国产女人aaa级久久久级| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美老肥妇做.爰bbww视频| 日韩一区欧美二区| 欧美激情中文字幕| 99国产精品久久久久久久久久久| 亚洲欧美激情插| 青椒成人免费视频| 国产精品日韩精品欧美在线| 欧美三级日韩三级国产三级| 国产中文一区二区三区| 欧美激情一区三区| 亚洲婷婷在线视频| 国产一区二区三区在线观看免费 | 日韩av中文字幕一区二区三区| 欧美v日韩v国产v| 91农村精品一区二区在线| 麻豆91在线观看| 欧美特级限制片免费在线观看| 狠狠网亚洲精品| 亚洲一区二区美女| 日本欧美加勒比视频| 国产精品福利av| 久久综合一区二区| 日韩一级高清毛片| 91电影在线观看| 国模无码大尺度一区二区三区| 亚洲bt欧美bt精品777| 亚洲自拍与偷拍| 亚洲欧洲在线观看av| 1024精品合集| 亚洲精品欧美专区| 一区二区三区波多野结衣在线观看| 国产精品三级在线观看| 一色屋精品亚洲香蕉网站| 中文字幕一区二区三区在线不卡| 懂色av一区二区三区蜜臀| 久久99国产精品免费| 日韩av电影天堂| 日本va欧美va瓶| 国产成人a级片| 波多野洁衣一区| 欧美日韩亚洲丝袜制服| 69p69国产精品| 精品美女一区二区三区| 1024成人网| 九九视频精品免费| 不卡一卡二卡三乱码免费网站| 色猫猫国产区一区二在线视频| 欧美在线观看视频一区二区| 精品黑人一区二区三区久久| 久久免费电影网| 欧美色老头old∨ideo| 欧美日韩你懂的| 成人午夜激情影院| 在线不卡免费av| 国产精品精品国产色婷婷| 偷拍一区二区三区| 91官网在线观看| 国产精品久久久久影视| 色呦呦日韩精品| 成人激情黄色小说| 久久综合九色综合97婷婷| 亚洲一区在线观看网站| 成人在线视频一区二区| 免费观看日韩电影| 亚洲欧美日韩国产一区二区三区| 日韩电影在线观看网站| 99久久99久久精品免费观看| 国产欧美精品一区aⅴ影院| 免费观看在线色综合| 成人国产免费视频| 成人综合婷婷国产精品久久| 欧美一区二区三区四区五区| 日韩国产在线观看| 99久久综合国产精品| 国产网站一区二区| 91久久精品日日躁夜夜躁欧美| 亚洲视频在线一区| 欧美中文字幕不卡| 亚洲主播在线观看| 成人欧美一区二区三区在线播放| 国产精品乱码一区二区三区软件| 久久成人精品无人区| 欧美精品一区二区三区在线| 免费看欧美女人艹b| 日韩精品一区二区三区蜜臀| 国产黄色成人av| 伊人婷婷欧美激情| 欧美日韩在线观看一区二区| 欧美日本精品一区二区三区| 亚洲人成网站色在线观看| 99久久精品一区二区| 亚洲国产精品影院| 欧美日韩精品三区| 国模娜娜一区二区三区| 久久99精品久久久久久| 色综合久久久网| 免费成人美女在线观看| 欧美成人女星排名| 99re这里都是精品| 欧美日韩欧美一区二区| 极品尤物av久久免费看| 中文天堂在线一区| 国产欧美一区二区三区在线看蜜臀| 欧美午夜视频网站| 国产经典欧美精品| 精品国产一区二区三区av性色| 91视频91自| 99这里都是精品| 国产成人精品一区二区三区四区| 奇米影视一区二区三区| 亚洲最快最全在线视频| 中文av一区二区| 国产精品视频免费看| 久久久噜噜噜久久中文字幕色伊伊| 色婷婷精品久久二区二区蜜臂av | 91在线播放网址| 久久精品国内一区二区三区| 国产精品麻豆网站| 日韩美女久久久| 亚洲综合成人在线| 亚洲精品欧美二区三区中文字幕| 亚洲精品免费在线观看| 亚洲国产日韩一级| 欧美丰满高潮xxxx喷水动漫| 久久婷婷色综合| 亚洲视频资源在线| 自拍偷拍国产亚洲| 欧美综合一区二区| 日韩欧美精品在线| 日韩一区二区三区观看| 视频一区二区三区在线| 午夜精品久久久久久久久久| 国产精品久久免费看| 亚洲精品你懂的| 久久99国产精品免费| 成人综合婷婷国产精品久久蜜臀 | 国产精品久久久久一区二区三区共| 亚洲婷婷综合色高清在线| 麻豆国产欧美一区二区三区| 成人妖精视频yjsp地址| 精品国产91九色蝌蚪| 亚洲视频小说图片| 久久福利视频一区二区| 中文无字幕一区二区三区| 亚洲精品欧美在线| 蜜桃精品在线观看| 色婷婷综合久久久中文字幕| 久久免费国产精品| 免费亚洲电影在线| 欧美日韩视频第一区| 欧美韩国一区二区| 粉嫩高潮美女一区二区三区 |