网站链接: HDHCMS 散文随笔
当前位置: 首页 >>ASP.NET >>MVC基础 >>MVC4 @helper辅助方法

MVC4 @helper辅助方法

2019/1/2 15:30:29 0人评论 101次

Razor提供了一种很方便的语法,可以将view页面中部分内容或部分代码抽取出来,变成一个独立的辅助方法。其实声明@helper辅助方法的语法与在c#中声明方法的方式非常像,唯一的差别在于不用回传任何类型,预设就是网页输出。如果要将这个@helper辅助方法用于多个不同的view页面里,可以考虑独立…

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)即可


相关文章

CopyRight:2007-2018 语言吧 备案ICP:湘ICP备09009000号-4 http://www.yuyanba.com