我有一个 MVC 站点,它使用带连字符的 URL(用于 SEO 优化),例如:
www.domain.com/about-us/know-our-services
现在我已经实现了MvcSiteMapProvider
生成动态面包屑,但是对于带有连字符的 URL,它不起作用(在站点地图上找不到)。
我该如何解决这个问题?
我有一个 MVC 站点,它使用带连字符的 URL(用于 SEO 优化),例如:
www.domain.com/about-us/know-our-services
现在我已经实现了MvcSiteMapProvider
生成动态面包屑,但是对于带有连字符的 URL,它不起作用(在站点地图上找不到)。
我该如何解决这个问题?
生成自定义 URL 的推荐方法是调整路由以构建 URL 方案。为了让 MvcSiteMapProvider 生成正确的 URL,您必须确保可以解析您的传出路由。
路线是 2 向映射。传入路由在GetRouteData
RouteBase 类的方法中确定。传出路由由GetVirtualPath
RouteBase 类的方法确定。传入路由是 MVC 用来确定与给定控制器和操作匹配的 URL。MVC 和 MvcSiteMapProvider 用于解析 URL的GetVirtualPath
方法,因此必须实现它才能使 MvcSiteMapProvider 与自定义 URL 一起工作。
查看ASP.NET MVC 中的自定义路由,了解如何通过子类化 RouteBase 来实现这些方法。这些相同的想法在注册 Route 类时适用 - 您必须确保 2 路解析才能使其工作。