dhl: 在 ASP.NET MVC 中创建自定义 HtmlHelper 使用扩展方法创建 HTML Helper

如果想创建如同 ASP.NET MVC Framework 中标准的 HTML Helper 一样工作的 HTML Helper,则需要创建扩展方法。扩展方法可以用于向现有类添加新的方法。创建 HTML Helper 方法时,会将新方法添加到由视图的 Html 属性表示的 HtmlHelper 类中。

程序清单 3 中的类将扩展方法添加到名称为 Label()HtmlHelper 类中。关于此类,有几点需要注意的地方。首先,请注意这个类是静态类。必须在静态类中定义扩展方法。

其次,请注意 Label() 方法的第一个参数前具有关键字 this。扩展方法的第一个参数表明扩展方法所扩展的类。

程序清单 3 Helpers\LabelExtensions.cs

using System;
using System.Web.Mvc;

namespace System.Web.Mvc    //注意: 这样 namespace  MvcApplication1.Helpers 是不行的
{
     public static class LabelExtensions
     {
          public static string Label( this HtmlHelper helper, string target, string text)
          {
               return String.Format("<label for='{0}'>{1}</label>", target, text);
          }
     }
}

创建扩展方法并成功生成应用程序后,扩展方法如同类的其他所有方法一样出现在 Visual Studio Intellisense 中,唯一的不同之处是,扩展方法旁会显示一个特殊的符号(向下箭头图标)。

 

使用 Html.Label() 扩展方法

 <%= Html.Label("firstName", "First Name:") %>   

在本教程中,我们学习了创建自定义 HTML Helper 的两种方法。首先,我们学习了如何通过创建返回字符串的静态方法创建自定义 Label() HTML Helper。接下来,我们学习了如何通过在 HtmlHelper 类中创建扩展方法创建自定义 Label() HTML Helper 方法。

 

转载于:https://www.cnblogs.com/dudu837/archive/2010/09/21/1832627.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值