我需要对以下场景进行建模,但我无法使用MvcSitemapProvider(我认为我的问题也直接映射到默认的SiteMapProvider)。我希望获得默认的breadcrumbs控件,以便与我的动态数据一起正常工作。
我有一个products
列表,按category
分组,其中parent-category
- ParentCategory
- 类别
- 产品
我希望能够使用以下网址:
(1) /产品
(2) / Products / MainCategory
(3) / Products / MainCategory / Category
(4) / Products / MainCategory / Category / Product
显然我的解决方案不是最佳的。
站点地图中的Products
节点没有ChildNodes,因此它们不会显示在我的菜单中。
我创建了一个中间对象,它添加了主要类别和类别,以便它们显示在我的菜单中。但这不会解决问题,因为其他控件(面包屑)只是说我在/ Products。
我应该更改路线还是更改我的站点地图定义?或者别的什么?
Global.asax路线定义:
routes.MapRoute( _
"Product", _
"Products/{MainCategoryName}/{CategoryName}/{ProductName}", _
New With {.controller = "Products", .action = "Product"} _
)
routes.MapRoute( _
"Products", _
"Products/{MainCategoryName}/{CategoryName}", _
New With {.controller = "Products", .action = "Index", .GroupName = "", .CategoryName = ""} _
)
我的站点地图中有以下条目:
<?xml version="1.0" encoding="utf-8" ?>
<siteMap>
<mvcSiteMapNode controller="Home" action="Index" title="Home" description="Homepage">
<mvcSiteMapNode controller="Products" action="Index" title="Products" description="" isDynamic="true" dynamicParameters="MainCategoryName;CategoryName" />
</mvcSiteMapNode>
</siteMap>
答案 0 :(得分:2)
我目前正在使用自定义SiteMapProvider
。我还在维护与他们无关的自定义路线。