Tak można użyć częściowej klasy - kompilator po prostu łączy je wszystkie do czasu kompilacji do wyprodukowania jednego.
Podaje się jednak, że chcesz "rozpowszechniać" kod - jeśli kod ma przejść do wielu projektów, częściowe działania nie pomogą.
Można zamiast tworzenia klas kontrolera stacji bazowej (które dziedziczą z System.Web.Mvc.Controller
w projekcie biblioteki klasy, z niezbędnymi metod działania, a potem po prostu korzystać z trasy do trasy podobnych adresów URL do różnych kontrolerów. Here's a link to the Asp.Net Tutorial 'Creating Custom Routes' które mogłyby być przydatne do tego. Gorąco polecam przejrzenie pozostałej części samouczka, jeśli istnieją inne kluczowe aspekty MVC, których nie masz pewności, nie obejmuje wszystkiego, ale ma podstawy.
Aplikacja internetowa, która musi być używana wtedy po prostu mają swoich kontrolerów, którzy dziedziczą po tych redystrybucyjnych, a jeszcze lepiej, możesz teraz tworzyć punkty rozszerzalności za pomocą metod wirtualnych itp., jeśli są elementy te raporty, które różne aplikacje internetowe mogą wymagać dostosowania.
Więc "Reports/Customers"
mógł trasa do CustomerReportsController
i "Reports/Orders"
mógł trasy do OrdersReportsController
:
routes.MapRoute("CustReports",
"Reports/Customers/{action}",
new { controller = "CustomerReports", action = "Index", id = "" });
routes.MapRoute("OrderReports",
"Reports/Orders/{action}",
new { controller = "OrdersReports", action = "Index", id = "" });
Jest to najbardziej uproszczone podejście do tego problemu - ale myślę, że za pomocą Areas (link jest na MSDN solucji) byłyby najbardziej prawdopodobnie również będzie to miało zastosowanie, w takim przypadku możesz nie potrzebować wcale routingu, ponieważ domyślna trasa prawdopodobnie to wszystko.
+1, niezły pomysł !! –
@Andras: Czy mogę podać przykładowy kod lub odnośnik do niego? Nigdy nie robiłem niestandardowego routingu, więc nie mam o tym pojęcia. –
@alok_dida zostały zaktualizowane. –