• 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 方法。

  • 相关阅读:
    KVC该机制
    JS多语种方式
    面试经典(1)---翻转字的顺序在一个句子
    正确Linux新手很实用20命令
    代码添加背景音乐的日记
    什么是比特币(Bitcoin)?
    李开复:该算法的重要性
    javascript推断的浏览器类型
    libyuv编
    Linux下将UTF8编码批量转换成GB2312编码的方法
  • 原文地址:https://www.cnblogs.com/dudu837/p/1832627.html
Copyright © 2020-2023  润新知