Sí, puedes usar una clase parcial - el compilador justo a todos ellos se une un tiempo de compilación para producir una.
Sin embargo, usted menciona que desea 'distribuir' el código; si el código va a ir a varios proyectos, los parciales no lo ayudarán.
su lugar, puede crear clases de controlador de base (que heredan de System.Web.Mvc.Controller
en un proyecto de biblioteca de clases, con los métodos de acción necesarios, y luego usar simplemente de enrutamiento para enrutar URLs similares a diferentes controladores. Here's a link to the Asp.Net Tutorial 'Creating Custom Routes' que podría ser útil para eso. Recomiendo encarecidamente consultar el resto del tutorial si hay otros aspectos centrales de MVC de los que no está seguro. No cubre todo, pero sí lo básico.
Una aplicación web que debe usarse aquellos entonces simplemente tienen sus propios controladores que heredan de aquellos redistribuibles. Incluso mejor, ahora puedes crear puntos de extensibilidad a través de métodos virtuales, etc. si hay elementos de estos informes que las diferentes aplicaciones web pueden necesitar para personalizar.
Así "Reports/Customers"
podía ruta a una CustomerReportsController
y "Reports/Orders"
podía ruta a 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 = "" });
Este es el enfoque más simplista a este problema - pero creo que el uso de Areas (enlace es a MSDN paso a paso) haría más probablemente también sea aplicable, en cuyo caso es posible que no necesite usar enrutamiento en absoluto porque la ruta predeterminada probablemente lo haría todo.
+1, buena idea !! –
@Andras: ¿Puedo tener un código de muestra o un enlace de referencia para ello? Nunca hice un enrutamiento personalizado, así que no tengo ninguna idea al respecto. –
@alok_dida han actualizado. –