1

我有一个 MVC 站点,它使用带连字符的 URL(用于 SEO 优化),例如:

www.domain.com/about-us/know-our-services

现在我已经实现了MvcSiteMapProvider生成动态面包屑,但是对于带有连字符的 URL,它不起作用(在站点地图上找不到)。

我该如何解决这个问题?

4

1 回答 1

0

生成自定义 URL 的推荐方法是调整路由以构建 URL 方案。为了让 MvcSiteMapProvider 生成正确的 URL,您必须确保可以解析您的传出路由。

路线是 2 向映射。传入路由在GetRouteDataRouteBase 类的方法中确定。传出路由由GetVirtualPathRouteBase 类的方法确定。传入路由是 MVC 用来确定与给定控制器和操作匹配的 URL。MVC 和 MvcSiteMapProvider 用于解析 URL的GetVirtualPath方法,因此必须实现它才能使 MvcSiteMapProvider 与自定义 URL 一起工作。

查看ASP.NET MVC 中的自定义路由,了解如何通过子类化 RouteBase 来实现这些方法。这些相同的想法在注册 Route 类时适用 - 您必须确保 2 路解析才能使其工作。

于 2014-04-09T05:57:55.380 回答