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)即可
  • 相关阅读:
    python 并发编程 多线程 event
    python 并发编程 多线程 定时器
    python 并发编程 多线程 信号量
    linux top 查看CPU命令
    python 并发编程 多线程 GIL与多线程
    python 并发编程 多线程 死锁现象与递归锁
    python 并发编程 多线程 GIL与Lock
    python GIL全局解释器锁与互斥锁 目录
    python 并发编程 多线程 GIL全局解释器锁基本概念
    执行python程序 出现三部曲
  • 原文地址:https://www.cnblogs.com/jinhaoObject/p/4597674.html
Copyright © 2011-2022 走看看