zoukankan      html  css  js  c++  java
  • 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 方法。

  • 相关阅读:
    android_自定义布局
    二叉树_学习笔记
    栈的应用-四则表达式(C#代码实现)
    Android Fragment 生命周期
    Android Fragment之间传值
    Android ArrayAdpater 填充集合
    任务和返回栈
    XML Drawable与9-Patches
    《python语言程序设计》_第一章编程题
    CSS-文本超出部分省略号
  • 原文地址:https://www.cnblogs.com/dudu837/p/1832627.html
Copyright © 2011-2022 走看看