我想创建一些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:控制器名称
我该如何解决这个问题。
提前致谢。
答案 0 :(得分:0)
您遇到的问题是,当涉及到具有3个段的URL的请求时,没有什么可以区分您的第一条路线与第二条路线,因此第一条路线捕获所有这些请求并“隐藏”第二条路线。为了解决这个问题,你必须区分这两条路线,例如通过制作第一条路线模式:
"/Go/{action}/{param1}/{id}"