Tengo dos áreas en mi proyecto. Ahora, cuando ejecuto el programa me sale este error:Se encontraron varios tipos que coinciden con el controlador llamado 'Inicio' - En dos áreas diferentes
Multiple types were found that match the controller named 'Home'. This can happen if the route that services this request ('{controller}/{action}/{id}') does not specify namespaces to search for a controller that matches the request. If this is the case, register this route by calling an overload of the 'MapRoute' method that takes a 'namespaces' parameter.
The request for 'Home' has found the following matching controllers:
BaseAdminMVC.Areas.BaseAdmin.Controllers.HomeController
BaseAdminMVC.Areas.TitomsAdmin.Controllers.HomeController
he encontrado alguna fuente aquí: Multiple Controller name
Pero creo que sólo funciona para un área.
En mi caso, tengo dos proyectos en diferentes áreas. Espero que alguien sepa qué debo hacer para resolver el problema.
Aquí está el archivo Global.asax
:
public static void RegisterRoutes(RouteCollection routes)
{
string[] namespaces = new string[] { "BaseAdminMVC.Areas.BaseAdmin.Controllers", "BaseAdminMVC.Areas.TitomsAdmin.Controllers"};
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces
);
}
Por cierto, también he controlador ("HomeController
") fuera de la carpeta Area
. Esto solo proporciona enlaces a dos proyectos BaseAdmin
y TitomsAdmin
.
me han tratado esta solución, pero aún no funciona :
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
"BaseAdmin",
"BaseAdmin/{controller}/{action}",
new { controller = "Account", action = "Index" },
new string[] { "BaseAdminMVC.Areas.BaseAdmin.Controllers" }
);
routes.MapRoute(
"TitomsAdmin",
"TitomsAdmin/{controller}/{action}",
new { controller = "Home", action = "Index" },
new string[] { "BaseAdminMVC.Areas.TitomsAdmin.Controllers" }
);
Gracias de antemano !!
Re la edición: tiene que mover la ruta predeterminada hacia abajo (hasta el último lugar). El orden es importante aquí. –
@HenkHolterman Todavía no funcionó. – fiberOptics
Y aún no está claro qué significa "no funciona". –