Sì, è possibile utilizzare una classe parziale - il compilatore semplicemente li unisce un tempo di compilazione per la produzione di uno.
Tuttavia, si dice di voler "distribuire" il codice: se il codice è destinato a più progetti, i partial non aiuteranno.
È invece possibile creare classi controller di base (che ereditano da System.Web.Mvc.Controller
in un progetto di libreria di classi, con i metodi di azione necessarie, e poi semplicemente utilizzare il routing per indirizzare gli URL simile a diversi controller. Here's a link to the Asp.Net Tutorial 'Creating Custom Routes' che potrebbe essere utile per questo. Consiglio vivamente di esaminare il resto del tutorial se ci sono altri aspetti fondamentali di MVC di cui non sei sicuro. Non copre tutto, ma fa le basi
Un'applicazione Web che deve essere utilizzata quelli che poi hanno semplicemente i propri controllori ereditano da quelli ridistribuibili. Ancora meglio, ora puoi creare punti di estensibilità attraverso metodi virtuali ecc. se ci sono elementi di questi rapporti che le diverse app Web potrebbero dover personalizzare.
Così "Reports/Customers"
poteva rotta verso un CustomerReportsController
e "Reports/Orders"
percorso possibile per una 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 = "" });
Questo è l'approccio più semplice a questo problema - ma credo che usando Areas (link è quello di MSDN walkthrough) sarebbe più potrebbe anche essere applicabile, nel qual caso potresti non aver bisogno di utilizzare il routing perché la route predefinita probabilmente farebbe tutto.
fonte
2012-03-13 09:23:32
+1, buona idea !! –
@Andras: Posso avere qualche codice di esempio o un link di riferimento per questo? Non ho mai fatto il routing personalizzato, quindi non ne ho idea. –
@alok_dida hanno aggiornato. –