MVC3 :: Usar global.asax para dirigir un controlador/acción específico a un controlador/acción diferente

En una aplicación MVC3, tengo una vista en el controlador de mi hogar a la que se accede a través de la siguiente URL:

http://mysite.com/home/mycontent

Sin embargo, mi usuario quiere acceder a través de:

http://mysite.com/mycontent (sin una referencia específica al controlador doméstico)

Intenté modificar mi global.asax con lo siguiente:

    routes.MapRoute(
        "MyContent", // Route name
        "MyContent", // URL with parameters
        new { controller = "Home", action = "MyContent"} // Parameter defaults
    );

Pero recibo errores 404 cuando trato de usarlo. ¿Hay alguna manera de lograr lo que mi usuario quiere hacer: redirigir una URL a un par de controlador/vista específico?

preguntado el 03 de mayo de 12 a las 17:05

2 Respuestas

Creo que deberías mantener algunos "parámetros":

routes.MapRoute(
        "MyContent", // Route name
        "{action}/{id}", // URL with parameters
        new { controller = "Home", action = "MyContent", id = ""} // Parameter defaults
    );

contestado el 03 de mayo de 12 a las 17:05

Lo siento... pero sigue el mismo problema. - andy evans

¿Define algunas otras rutas (puede ser una predeterminada)? - fmgp

NvrMind... Lo tengo... Lo descubrí y usé "MyContent" en lugar de "{action}/{id}" - andy evans

¿En qué orden están registradas sus rutas? Esa ruta debe venir antes de su ruta predeterminada.

P.ej

routes.MapRoute(
    "MyContent", // Route name
    "MyContent", // URL with parameters
    new { controller = "Home", action = "MyContent"} // Parameter defaults
);

routes.MapRoute(
    "Default", // Route name
    "{controller}/{action}/{id}", // URL with parameters
    new { controller = "Pages", action = "Index", id = UrlParameter.Optional }
);

De lo contrario, debería funcionar... Tengo rutas definidas exactamente igual que eso.

contestado el 03 de mayo de 12 a las 17:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.