Pregunta ¿Por qué en ASP.NET MVC 3 la ruta predeterminada no funciona para un controlador llamado "ContentController"?


Tengo un nuevo proyecto de asp.net mvc 3. No modifiqué las rutas de ninguna manera. Tengo un controlador llamado PageController y otra llamada del controlador 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 navego a domain.com/Content, aparece un error 404. Si navego a domain.com/Content/Index, entonces funciona bien.

¿Cómo soluciono problemas de esta ruta única?

    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
        ); 
    }

Intenté agregar 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?


5
2017-09-28 15:58


origen


Respuestas:


Es porque hay una carpeta física llamada contenido. tener un controlador con el mismo nombre que una carpeta física probablemente tendrá algunos efectos adversos en su sitio web.


11
2017-09-28 16:01



Intente agregar lo siguiente a sus definiciones de ruta:

routes.RouteExistingFiles = true;

0
2017-09-28 16:03