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--学习过程
    线程、进程、协程
    socket
    面向对象--进阶
    面向对象--初级
    Python常用的模块
    2019-2020-1 20191301《信息安全专业导论》第十二周学习总结
    wirehark
    2019--2020第十一周信息安全导论论总结20191301
    2019--2020信息安全导论第10周总结20191301
  • 原文地址:https://www.cnblogs.com/jinhaoObject/p/4597674.html
Copyright © 2011-2022 走看看