我有一个默认的C#MVC路线:像C#MVC路由 - 多种途径
routes.MapRoute(
"Default",
"{controller}/{action}/{id}"
new { controller = "Home", action = "Index", id = "Welcome" }
);
现在我会网址:
mysite.com/Home/Index/Page1
mysite.com/Home/Index/Page2
mysite.com/Home/Index/Page3
mysite.com/Account/Login
mysite.com/Account/Etc
但我想有第一套具有较短网址,如:
mysite.com/Page1
mysite.com/Page2
mysite.com/Page3
mysite.com/Account/Login
mysite.com/Account/Etc
我预想的代码是非常简单的,如:
routes.MapRoute(
"Shorturl",
"{id}",
new { controller = "Home", action = "Index", id = "Welcome" }
);
routes.MapRoute(
"Default",
"{controller}/{action}/{id}"
new { controller = "Home", action = "Index", id = "Welcome" }
);
但这并不奏效。它只会走第一条路线,忘记第二条路线。 当只有一个参数(如 mysite.com/Page1)时,如何让程序采用第一条路线,并在有多条路线(如mysite.com/Account/Login)时采用第二条路线?
编辑: 我可以这样做:
routes.MapRoute("Short", "short/{id}", new { controller = "Home", action = "Indx", id = "Page1" });
但后来我将有一个丑陋的URL “短/”。 我可以解决这个问题:
routes.MapRoute("Page1", "Page1", new { controller = "Home", action = "Index", id = "Page1" });
但后来我需要手动添加每个新页......
http://stackoverflow.com/questions/2975642/routing-in-asp-net-mvc-2-0 – CodeCaster 2011-12-23 09:55:38