国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

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

2024-07-10 12:47:27
字體:
來源:轉載
供稿:網友

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)  //調用的自定義函數            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 温州市| 东兰县| 镶黄旗| 江山市| 龙川县| 安泽县| 阿克苏市| 历史| 遂宁市| 宿迁市| 宜城市| 额敏县| 镇安县| 唐山市| 鹤峰县| 鄂州市| 海宁市| 陇南市| 新安县| 沁阳市| 册亨县| 邹平县| 会理县| 张家港市| 高台县| 武平县| 资中县| 蓬安县| 南雄市| 西藏| 扎兰屯市| 临桂县| 苍山县| 沭阳县| 霍城县| 广南县| 卓尼县| 迁安市| 迁安市| 石河子市| 满洲里市|