martes, 31 de marzo de 2015

Controladores MVC de diferentes DLL

¡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!