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)即可
  • 相关阅读:
    CCLayerColor 用法
    数据存储的常见方式
    rand() 和arc4random()到底应该如何取舍呢
    Cocos2d 中对图片的各种操作
    objectivec 解压缩zip
    设置IE浏览器默认的下载路径
    设置浏览器主页
    得到所有本机上安装的软件名
    取消快捷方式中的箭头图标
    查看本机服务
  • 原文地址:https://www.cnblogs.com/jinhaoObject/p/4597674.html
Copyright © 2011-2022 走看看