我目前正在创建一些自定义的辅助类,类似于ASP.NET MVC的标准HtmlHelper
实现的一些方法的HtmlHelper。当我看着HtmlHelper
实施,我注意到大部分/所有的HTML生成方法(如ActionLink()
,BeginForm()
,TextBox()
,等)不直接HtmlHelper类内部实现,而是作为单独的类扩展方法(例如在class LinkExtensions
)。为什么作为扩展方法
除了,是否有任何优点实现这样的方法作为扩展方法,而不是正常的方法时?
在创建我自己的帮助类时,我是否也应遵循该模式?
更新:当我写我想创建自己的帮助类时,我的意思是扩展现有的HtmlHelper类。相反,我为我的视图创建了一个自定义的基类(从ViewPage派生),我想添加一个类似于ViewPage的Html和Url辅助类的辅助类。
因此,不需要以相同的方式构建自己的助手类? – M4N 2010-01-14 16:08:00
实际上,扩展方法是您可以编写HTML帮助程序的唯一方法。 – 2010-01-15 02:14:35
我不想扩展HtmlHelper!我已经用更多的细节更新了这个问题。 – M4N 2010-01-16 21:59:04