Asp.net 搜索引擎优化的URL路由Frinedly URL

Asp.net 搜索引擎优化的URL路由Frinedly URL,asp.net,asp.net-mvc-2,asp.net-mvc-routing,Asp.net,Asp.net Mvc 2,Asp.net Mvc Routing,我想创建一些搜索引擎优化友好的网址 以下是我的Global.ascx条目: routes.MapRoute( "Product", "{action}/{param1}/{id}", new { controller = "Home", action = "Index" }); routes.MapRoute( "Default", "{controller}/{action}/{id}", new { controller = "

我想创建一些搜索引擎优化友好的网址

以下是我的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 }); routes.MapRoute( “产品”, “{action}/{param1}/{id}”, 新建{controller=“Home”,action=“Index”}); routes.MapRoute( “默认”, “{controller}/{action}/{id}”, 新的{controller=“Home”,action=“Index”,id=urlparmeter.Optional}); 第一个映射是因为我不想在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 http://localhost:1234/index/my-产品信息/12:通过 http://localhost:1234/contentcontrol/index :通过 http://localhost:1234/contentcontrol/index/12 :失败 这里,, 索引:操作名称 contentcontrol:控制器名称

我应该如何解决这个问题


提前感谢。

您遇到的问题是,当涉及到对包含3个段的URL的请求时,无法区分第一个路由和第二个路由,因此第一个路由捕获所有这些请求并“隐藏”第二个路由。要绕过它,您必须区分这两条路线,例如,制作第一条路线模式:

"/Go/{action}/{param1}/{id}"