que tienen un defecto C# rutas mvc:C# MVC enrutamiento - múltiples rutas
routes.MapRoute(
"Default",
"{controller}/{action}/{id}"
new { controller = "Home", action = "Index", id = "Welcome" }
);
Ahora voy a tener URLs como:
mysite.com/Home/Index/Page1
mysite.com/Home/Index/Page2
mysite.com/Home/Index/Page3
mysite.com/Account/Login
mysite.com/Account/Etc
Pero me gustaría tener el primer set con un menor URL como:
mysite.com/Page1
mysite.com/Page2
mysite.com/Page3
mysite.com/Account/Login
mysite.com/Account/Etc
que esperaba que el código sea muy simple como:
routes.MapRoute(
"Shorturl",
"{id}",
new { controller = "Home", action = "Index", id = "Welcome" }
);
routes.MapRoute(
"Default",
"{controller}/{action}/{id}"
new { controller = "Home", action = "Index", id = "Welcome" }
);
Pero eso no funciona. Solo tomará la primera ruta y olvidará la segunda. ¿Cómo puedes hacer que tu programa tome la primera ruta cuando solo hay un parámetro (como mysite.com/Page1) y tomar la segunda ruta cuando tienes múltiples rutas (como mysite.com/Account/Login)?
Editar: que puedo hacer:
routes.MapRoute("Short", "short/{id}", new { controller = "Home", action = "Indx", id = "Page1" });
Pero entonces tendría un feo "corto /" en la url. lo puedo arreglar con:
routes.MapRoute("Page1", "Page1", new { controller = "Home", action = "Index", id = "Page1" });
Pero luego tenga que añadir manualmente cada nueva página ...
http://stackoverflow.com/questions/2975642/routing-in-asp-net-mvc-2-0 – CodeCaster