如何配置 ASP.NET MVC 3 路由,使其不在 url 中显示 Controller ?
这是我的路线
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
"HomeActions",
"{action}",
new { action= "AboutUs" }
);
我需要网址:
mysite.com/AboutUs
但我有
mysite.com/Home/AboutUs
最佳答案
我会非常具体地说明您要路由的网址。并将其放置在默认路由上方。
routes.MapRoute(
"HomeActions",
"AboutUs",
new { controller = "Home", action= "AboutUs" }
);
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
对您建议的路线不那么具体可能会产生不良后果。特别是如果在默认路由下面列出。
routes.MapRoute(
"HomeActions",
"{action}",
new { controller = "Home", action= "AboutUs" }
);
例如,如果在默认之后添加了上述路由,则 url http://www.example.com/AboutUs可能匹配路由 {controller = "AboutUs", action = "Index", id = UrlParamter.Optional}。如果您在默认路由之上添加了路由,则查找 url http://www.example.com/Users您可能希望成为 Users Controller 上的 Index 操作现在将在 Home Controller 上查找 Users 操作。
所以,我建议具体说明这样的路线。
关于asp.net-mvc - url中没有 Controller 的MVC路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6047155/