¡Buenos días!
El día de
hoy les compartiré un pequeño código de MVC de como mapear los controladores
que se encuentran en diferentes DLL o carpetas dentro del mismo sitio.
MVC trabaja
con un archivo de configuración llamado RouteConfig, dentro de
la carpeta App_start en el cual se mapean las rutas de nuestros controladores, por
default, este busca en la carpeta Controllers, que es donde MVC reconoce los
controladores creados.
Supongamos
que tenemos un sitio modular, donde tenemos diferentes DLL, en la cual puede haber
controladores que necesitamos utilizar o incluso APIControllers, para ello en
el método static que se encuentra en el archivo antes mencionado, agregamos el
atributo namespace a lo que ya viene por default, y agregamos los namespaces de
las demás DLL donde buscara las rutas y/o bien el namaspace de nuestro mismo
proyecto donde alojamos los controladores pero en diferente carpeta.
Código Editado:
public static void RegisterRoutes(RouteCollection routes)
{
//declaracion de rutas
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Authentication", action = "Login", id = UrlParameter.Optional },
namespaces: new[] { "DLL1.Controllers", "DLL2.Controllers", "ProyectoPrincipal.OtraCarpeta " }
//Se indican los
namaspaces de donde va a tomar las rutas de los controladores
);
}
Espero les
sea Util.
Saludos
cordiales!