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

时间: 2024-07-30 10:45:07

MVC4 @helper辅助方法的相关文章

@Helper辅助方法和@functons自定义函数

1.首先说下@helper辅助方法,当我们在多个视图中共用相同的方法的时候,可以把此方法剥离出来放到一个位置,此时就可以用到@Helper辅助方法,首先我们在解决方案右键添加 App_Code文件夹,然后添加一个cshtml文件,清空原有文件内容,然后把自定义的方法放进去,例如 @helper Show(int i) { if(i==1) { @:值为1 } else { @:值为其他 } } 2.当我们想实现更复杂的逻辑,比如想有返回值的时候可以通过@functions关键字来自定义函数,如下

MVC学习系列[email&#160;protected]辅助方法和用户自定义HTML方法

在HTML Helper,帮助类的帮助下,我们可以动态的创建HTML控件.HTML帮助类是在视图中,用来呈现HTML内容的.HTML帮助类是一个方法,它返回的是string类型的值. HTML帮助类,分成三个类型: Inline HTML helpers[内联的HTML帮助类,例如@Html.Label等] Built-in HTML helpers[也就是嵌套的HTML帮助类,即@helper辅助方法] Custom HTML helpers[自定义的HTML帮助类] 在这里,我们学习第二种,

@Helper辅助方法和@functions自定义函数

1.首先说下@helper辅助方法,当我们在多个视图中共用相同的方法的时候,可以把此方法剥离出来放到一个位置,此时就可以用到@Helper辅助方法,首先我们在解决方案右键添加 App_Code文件夹,然后添加一个cshtml文件,清空原有文件内容,然后把自定义的方法放进去,例如 @helper Show(int i) { if(i==1) { @:值为1 } else { @:值为其他 } } 2.当我们想实现更复杂的逻辑,比如想有返回值的时候可以通过@functions关键字来自定义函数,如下

Asp.net MVC4.0自定义Html辅助方法

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Web; using System.Web.Mvc; namespace MyEF.ExtentionHtmlHelper { public static class ImageHelper { //说明:因为C#3.0的扩充方法是一种特殊的静态方法,因此在开发Html辅助方法时必须声明为 //静态方

MVC4.0 扩展辅助方法

新年第一天上班,写个博客开头吧! 在MVC中,辅助类是很常见的,比如说,Html.TextBox().Html.DropDownListFor()等,这些都是微软帮我们封装好的,可以直接调用的,它们解析出来的结果都是一段Html代码,而实际项目中,我们可能需要自己去扩展一些我们需要的辅助类,比如说下面这段代码: @UserHelpers.UserMsg(this.Html, ViewBag.Msg, ViewBag.MsgType),它的作用是用于系统消息提示. 我们转到它的定义看看: 1 pu

Asp.net MVC4高级编程学习笔记-模型学习第五课MVC表单和HTML辅助方法20171101

MVC表单和HTML辅助方法 一.表单的使用. 表单中的action与method特性.Action表示表单要提交往那里,因此这里就有一个URL.这个URL可以是相对或绝对地址.表单默认的method属性值是get,如果看到表单没有写method属性那就是表示method是get方式提交.另外一种就是post方式. 当使用HTTP Get请求时,浏览器会提取表单中元素的name特性值及相应的value特性值放到查询字符串中.如:http://localhost?search?id=1 如果不想把

扩展HtmlHelper辅助方法

1.什么是HtmlHelper辅助方法?其实就是HtmlHelper类的扩展方法,如下所示: namespace System.Web.Mvc.Html { public static class FormExtensions//表单相关扩展方法,例如创建表单标签等. public static class InputExtensions//这里包含了所有input,例如:text,button,readiobutton等等. public static class LinkExtensions

[MVC]Ajax辅助方法

在开始使用Ajax辅助方法前,必须在页面中载入jQuery以及jquery.unobtrusive-ajax.js文件才能正常执行. 为了让网站载入适当的JS函数库,必须先让Layout页面载入适当的JS文件,在MVC4模板中,默认已将Jquery文件加入,代码如下: 1 @Scripts.Render("~/bundles/jquery") 2 @RenderSection("scripts", required: false) 其中@Scripts.Render

MVC扩展之HtmlHelper辅助方法

1.什么是HtmlHelper辅助方法?其实就是HtmlHelper类的扩展方法,如下所示: namespace System.Web.Mvc.Html { public static class FormExtensions//表单相关扩展方法,例如创建表单标签等. public static class InputExtensions//这里包含了所有input,例如:text,button,readiobutton等等. public static class LinkExtensions