[翻译]ASP.NET MVC Tip #1 - 使用扩展方法创建新 HTML Helpers
2009-11-13 09:17
330 查看
本技巧里,我演示如何创建两个 HTML Helper,并在 ASP.NET MVC 视图中调用。您可以使用扩展方法(extension method)创建新 HTML Helper,以显示有序列表和无序列表(bulleted and numbered lists)。
给 ASP.NET MVC 应用程序创建视图时,您可以利用 HTML Helpers 呈现标准 HTML 标签。例如,除了这样写代码:
<input name="inpSubmit" type="submit" value="Click Here!" />
您还可以这样写:
<%= Html.SubmitButton("inpSubmit", "Click Here!") %>
长远来看,HTML Helpers 可以给您节省很多时间。但是,若您希望呈现的标签没有 HTML Helper 怎么办?例如,想象一下,您希望在视图上把数据库记录显示成无序列表(<ul>),而 HtmlHelper 类不包含可让您呈现无序列表的方法。要是 HTML Helper 缺少您需要的方法,扩展它吧!
通过创建新的扩展方法,您可以给 HtmlHelper 增加新的行为。扩展方法看起来像极了普通的实例方法。然而,不同于实例方法,您在一个完全不同的类中给另一个类添加扩展方法。
在 Visual Basic.Net 里,您创建扩展的方法是,创建一个模块(module),然后用一个特殊的属性类(ExtensionAttribute)来修饰扩展方法。在 C# 中,您在静态类(static class)中定义扩展方法,使用 this 关键字标识其为扩展的。
您可以添加扩展方法到 HtmlHelper 类,以将数据库记录显示为有序列表(ordered list )或无序列表(unordered list)。
Listing 1 – ListExtensions.vb (VB.NET)
您可以在 ASP.NET MVC 视图中使用这种方法呈现任何内容,例如您可以使用相同方法呈现 TreeViews,Menus,tabstrips,或者其它任何东西。
点击这里下载源代码
原文:ASP.NET MVC Tip #1 - Create New HTML Helpers with Extension Methods
给 ASP.NET MVC 应用程序创建视图时,您可以利用 HTML Helpers 呈现标准 HTML 标签。例如,除了这样写代码:
<input name="inpSubmit" type="submit" value="Click Here!" />
您还可以这样写:
<%= Html.SubmitButton("inpSubmit", "Click Here!") %>
长远来看,HTML Helpers 可以给您节省很多时间。但是,若您希望呈现的标签没有 HTML Helper 怎么办?例如,想象一下,您希望在视图上把数据库记录显示成无序列表(<ul>),而 HtmlHelper 类不包含可让您呈现无序列表的方法。要是 HTML Helper 缺少您需要的方法,扩展它吧!
通过创建新的扩展方法,您可以给 HtmlHelper 增加新的行为。扩展方法看起来像极了普通的实例方法。然而,不同于实例方法,您在一个完全不同的类中给另一个类添加扩展方法。
在 Visual Basic.Net 里,您创建扩展的方法是,创建一个模块(module),然后用一个特殊的属性类(ExtensionAttribute)来修饰扩展方法。在 C# 中,您在静态类(static class)中定义扩展方法,使用 this 关键字标识其为扩展的。
您可以添加扩展方法到 HtmlHelper 类,以将数据库记录显示为有序列表(ordered list )或无序列表(unordered list)。
Listing 1 – ListExtensions.vb (VB.NET)
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using BulletedListHelper.Models; namespace BulletedListHelper.Controllers { public class HomeController : Controller { private MoviesDataContext db = new MoviesDataContext(); public ActionResult Index() { var movies = from m in db.Movies select m.Title; return View(movies); } } }
您可以在 ASP.NET MVC 视图中使用这种方法呈现任何内容,例如您可以使用相同方法呈现 TreeViews,Menus,tabstrips,或者其它任何东西。
点击这里下载源代码
原文:ASP.NET MVC Tip #1 - Create New HTML Helpers with Extension Methods
相关文章推荐
- (转)[翻译] ASP.NET MVC Tip #1 - 使用扩展方法创建新的HTML Helper
- [翻译] ASP.NET MVC Tip #1 - 使用扩展方法创建新的HTML Helper
- 在ASP.NET MVC中使用Knockout实践02,组合View Model成员、Select绑定、通过构造器创建View Model,扩展View Model方法
- 使用扩展方法创建新的HTML Helper
- 使用扩展方法创建 HTML Helper
- dhl: 在 ASP.NET MVC 中创建自定义 HtmlHelper 使用扩展方法创建 HTML Helper
- 在Asp.net MVC framework中使用扩展方法创建Html Helper
- Tip#1-使用扩展方法创建新的HTML Helper
- 使用扩展方法创建 HTML Helper
- C# 2.0:使用匿名方法、迭代程序和局部类来创建优雅的代码
- Java创建和解析Json数据方法(二)——org.json包的使用
- 使用VMware Workstation 12 创建虚拟机的方法
- Spring Boot (番外篇:使用idea创建springboot项目的两种方法)
- C++使用递归的方法创建二叉树
- 使用扩展方法简化RadAjaxManager设置
- 使用Eclipse创建一个Android程序方法
- 详解php mysqli扩展中的方法multi_query的使用
- git使用方法---仓库的创建及更新
- 创建procedure (SQL存储过程的介绍, 建立和使用方法)
- 【翻译自mos文章】在11.2中,使用DBMS_SERVICE.CREATE_SERVICE 能最多创建多少个service?