0

我想创建一些 SEO 友好的 URL。

以下是我的 Global.ascx 条目:

 路线.MapRoute(
     “产品”,
     "{action}/{param1}/{id}",
     新的{控制器=“家”,动作=“索引”});

 路线.MapRoute(
     “默认”,
     "{controller}/{action}/{id}",
     新的{控制器=“家”,动作=“索引”,id=UrlParameter.Optional});

第一个映射是因为我不想在 url 中显示我的控制器名称。下一个映射用于 URL 的其余部分。

问题是有一些 URL 给了我一个错误,比如:

http://localhost:1234/index/my-product-information/12 :通过
http://localhost:1234/contentcontrol/index :通过
http://localhost:1234/contentcontrol/index/12:失败

在这里,索引:动作名称内容控制:控制器名称

我应该如何解决这个问题。

提前致谢。

4

1 回答 1

0

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

"/Go/{action}/{param1}/{id}"
于 2012-10-16T10:18:00.917 回答