zoukankan      html  css  js  c++  java
  • MVC4 @helper辅助方法

    Razor提供了一种很方便的语法,可以将view页面中部分内容或部分代码抽取出来,变成一个独立的辅助方法。

     
    eg1:
    @foreach(var item in Model){
    <标签tr>
    <标签td>@item.Name</标签td>
    <标签td>@item.Price</标签td>
    </标签tr>
    }
    当如果我们要对item.Price做处理时,比如为0时,网页显示免费,则需要加个判断
    eg2:
    @foreach(var item in Model){
    <标签tr>
    <标签td>@item.Name</标签td>
    <标签td>
        @if(item.Price==0){
    @: 免费
    }else{
    @item.Price
    }   </标签td>
    </标签tr>
    }
     
    但是如果出现多个栏位都要这么处理,那么我们可以利用razor的@helper将这部分逻辑取出来,变成一个独立的方法,而@helper语法是在@helper后方加入一个方法声明,可以包含一些参数,
    eg:
    @helper ShowPrice(int price){
    if(price==0){
    @:免费
    }else{
    @price
    }
    }
    然后就这样调用
    eg3:
    @foreach(var item in Model){
    <标签tr>
    <标签td>@item.Name</标签td>
    <标签td>@ShowPrice(item.Price)</标签td>
    </标签tr>
    }
     
     
    其实声明@helper辅助方法的语法与在c#中声明方法的方式非常像,唯一的差别在于不用回传任何类型,预设就是网页输出。如果要将这个@helper辅助方法用于多个不同的view页面里,可以考虑独立出来放在专案根目录app_code下,这个独立的文件后缀必须为cshtml,做法:先添加一个app_code文件夹,再在添加--》新建项--》MVC4布局页 这一项 并命名为UIHelper.cshtml(可取其他名)
    这时就可以把刚下好的@helper 原封不动的移到这个文件里,最后当我们再调用的时候改成@UIHelper.ShowPrice(item.Price)即可
  • 相关阅读:
    佛教-著作:《般若泼若密心经》
    学科-几何:分形几何学
    战国-散文:《生于忧患,死于安乐》
    北宋-词:《临江仙·送王缄》
    音乐:《河西走廊之梦》
    影视-纪录片:《河西走廊》
    汉语-汉字:黾
    动物-昆虫:水螳螂
    动物-昆虫:水黾
    主程的晋升攻略(3):IP、DNS和CDN
  • 原文地址:https://www.cnblogs.com/jinhaoObject/p/4597674.html
Copyright © 2011-2022 走看看