ASP.NET MVC自定义帮助程序对象

时间:2009-08-28 08:57:36

标签: asp.net-mvc helpers

我要为我的应用写一大堆帮手。

对于他们中的许多人,我不想扩展HtmlHelper,而是创建另一个帮助类,原因有两个:1)能够编写,比如Link.Home和Icon.Edit而不是Html.HomeLink和Html.IconEdit; 2)能够轻松地告知标准助手的定制助手以及后者的定义。

这可能吗?怎么样?

这不推荐吗?为什么呢?

感谢

2 个答案:

答案 0 :(得分:4)

嗯,“辅助方法”只是扩展方法。如果您希望能够在视图中编写Link.Home,则必须扩展ViewPage并添加类型为Link的属性,例如ILinkILink接口本身可能为空。现在,您的所有视图都应继承自MyViewPage,编写帮助程序方法将成为一项简单的任务:

public static string Home(this ILink link, string text)
{
     // ...
}

答案 1 :(得分:0)

这可以通过继承HtmlHelper并调用新类Link和Icon来实现。

我不推荐它,原因很简单,Html.HomeLink和Html.IconEdit清楚地说明了该方法的作用,它以HomeLink和编辑图标的形式输出Html。