【发布时间】:2012-01-26 17:22:01
【问题描述】:
我有一个默认的 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
但我希望第一组 URL 更短,例如:
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 中有一个丑陋的“short/”。 我可以修复它:
routes.MapRoute("Page1", "Page1", new { controller = "Home", action = "Index", id = "Page1" } );
但是我需要手动添加每个新页面...
【问题讨论】:
标签: c# model-view-controller routes