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)即可
  • 相关阅读:
    【转】backtrack5工具之SQLMAP使用笔记(SQL注入用)
    httpd.conf配置详解
    【转】CodeBlocks+wxWidgets安装教程
    Windows下的Photoshop CS6快捷键
    backtrack常用渗透命令
    Codeforces Round #137 (Div. 2)
    Fedora 17 上安装 AMP 服务(Apache MySQL PHP)
    这几天用linux的体验
    EVO 4G 相机 照相 黑屏
    转载:qsort细节用法,double型的排序我竟然一直用错了~~~
  • 原文地址:https://www.cnblogs.com/jinhaoObject/p/4597674.html
Copyright © 2011-2022 走看看