我目前正在創建一些自定義的輔助類,類似於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