Tengo un nuevo proyecto asp.net mvc 3. No modifiqué las rutas de ninguna manera. Tengo un controlador llamado PageController
y otra llamada de controlador ContentController
.¿Por qué en ASP.NET MVC 3 la ruta predeterminada no funciona para un controlador llamado "ContentController"?
Cuando navego a domain.com/Page, la acción de índice en el controlador de página se ejecuta como se esperaba y muestra la vista de índice.
Cuando busco domain/Content obtengo un error 404. Si navego a domain.com/Content/Index, funciona bien.
¿Cómo soluciono el problema de esta única ruta?
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
He intentado añadir una ruta adicional:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"Content", // Route name
"Content/{action}/{id}", // URL with parameters
new { controller = "Content", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
Pero la ruta adicional no cambió el comportamiento de la aplicación.
¿Qué podría estar causando esto?
Solo para aclarar, se puede añadir el código del 'ContentController' –
@MatthewAbbott - Todo se genera a través de un andamio. Pude resolver el problema implementando la respuesta de Nathan. – quakkels