我想创建一些SEO友好的URL .
以下是我的Global.ascx条目:
routes.MapRoute(
"Product",
"{action}/{param1}/{id}",
new { controller = "Home", action = "Index" });
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional });
First Mapping是因为我不想在url中显示我的控制器名称 . 下一个映射用于URL的其余部分 .
问题是有一些URL给我一个错误,如:
http://localhost:1234/index/my-product-information/12 : PASS
http://localhost:1234/contentcontrol/index : PASS
http://localhost:1234/contentcontrol/index/12 : FAIL
这里,index:ACTION NAME contentcontrol:控制器名称
我该如何解决这个问题 .
提前致谢 .
1 回答
您遇到的问题是,当涉及对具有3个段的URL的请求时,没有什么可以区分您的第一个路由与第二个路由,因此第一个路由捕获所有这些请求并“隐藏”第二个路径 . 为了解决这个问题,你必须区分这两条路线,例如通过制作第一条路线模式: