我來自ASP.NET Webforms應用程序。我正在使用第三方控件創建一個後裔來設置一些默認值。然後,我將該課程註冊爲一個標籤,並且我準備好不必再次設置選項。「子類」MVC擴展
現在我想去一個基於MVC的應用程序。我很好奇如何做到這一點。有沒有辦法在那裏「擴展」擴展?
編輯:與DevExpress的MVC電網延伸
我來自ASP.NET Webforms應用程序。我正在使用第三方控件創建一個後裔來設置一些默認值。然後,我將該課程註冊爲一個標籤,並且我準備好不必再次設置選項。「子類」MVC擴展
現在我想去一個基於MVC的應用程序。我很好奇如何做到這一點。有沒有辦法在那裏「擴展」擴展?
編輯:與DevExpress的MVC電網延伸
第三方控制完全是另外一個故事這樣做,並且供應商必須釋放一個ASP.NET MVC版本。
但是,簡單來說,在ASP.NET MVC中創建可重用代碼的一個選項是create custom HTML helpers。它基本上最終會成爲一種方法,您可以調用哪個輸出標記,可以相當快速地生成相當強大的標記。
很多HTML Helper上的資源,並且要記住,在Google上找到的「文檔」在ASP.NET MVC版本中發生了顯着變化,因此請注意確保您不要把自己限制在做事的「老方法」。還有一些商業和免費產品以及帶有方便的助手和擴展的開源項目。
第三方控件使用Settings類。我創建了一個新的設置類,它在其構造函數中設置了默認值。
然後我寫了讀像這樣的擴展方法:然後
public static GridViewExtension GridView (this HtmlHelper html, Action<CustomGridViewSettings> settings) {
var mySettings = new CustomGridViewSettings();
settings(mySettings);
return html.DevExpress().GridView((GridViewSettings)mySettings);
}
使用的是模擬的樣品在線@DevExpress頁,我這裏省略了樣品類。
供應商發佈了MVC版本,我只是在尋找一種集中整合設置的方式,而不是一遍又一遍地重複它們。這只是一些設置所必需的,而其他設置則需要更改。 – Sascha 2011-12-27 17:33:52
@Sascha:我想這取決於供應商版本的結構。如果是助手,那麼創建一個調用助手的自定義助手應該可以工作(畢竟,這只是一個調用另一個方法的方法)。如果它是一個用戶控件或一些基於類的結構,那麼創建一個包裝類應該能夠做到。最後,它應該歸結爲類和方法,它們可以根據需要進行包裝和/或繼承。 – David 2011-12-27 17:36:48
感謝您的提示。我想我發現了一種方式,感謝您的評論,並會接受這個答案。 – Sascha 2011-12-27 17:51:37