Jak*_*ade 3 .net c# asp.net-mvc-routing asp.net-mvc-3
如何配置ASP.NET MVC 3路由,以便它不需要URL中的控制器和操作?
我有这个显示项目"abc123"的详细信息,配置默认路由设置:
mysite.com/Home/Details/abc123
Run Code Online (Sandbox Code Playgroud)
值"abc123"是一个唯一值,Home控制器用它来查找数据库中的正确项.
但我宁愿让这些超短网址:
mysite.com/abc123
Run Code Online (Sandbox Code Playgroud)
该网站还将拥有极少数额外的控制器,例如"关于"和"联系".我假设我必须特别配置它们,因此默认控制器不会开始查找ID为"About"或"Contact"的项目的详细信息.我怎么做?
更新:
这是我的路线最终看起来像:
routes.MapRoute("About", "About", New With {.controller = "About", .action = "Index"})
routes.MapRoute("ID", "{id}", New With {.controller = "Home", .action = "Details"})
routes.MapRoute("Default", "", New With {.controller = "Home", .action = "Index"})
Run Code Online (Sandbox Code Playgroud)
:)
尝试这样的事情:
routes.MapRoute("Site"
, "Site/{controller}/{action}"
, new { controller = "Home", action = "Index"});
routes.MapRoute("Id"
, "{id}"
, new { controller = "Home", action = "Details"});
Run Code Online (Sandbox Code Playgroud)
第一个路由应确保您可以将/ Site/About和/ Site/Contact分别映射到AboutController和ContactController.首先映射它是很重要的.
第二个路由将确保/ abc123映射到ID为"abc123"的详细信息操作
| 归档时间: |
|
| 查看次数: |
5085 次 |
| 最近记录: |