对于菜单生成和面包屑,您需要自己处理它,最终使用SiteMapProvider上的SiteMap.Resolve事件动态挂钩"不存在的"页面.
关于路由,C1中有一个功能,它将URL解析为第一个"真实页面",并将您可以使用的URL的多余部分交给您.让我们说/ myshop是你的商店页面,用户请求/ myshop /衣服,然后它仍然是/ myshow将被执行,你会在那里放置代码来处理你的类别.
在你的"myshop"页面上提取"衣服"的代码将是Composite.Core.Routing.Pages.C1PageRoute.GetPathInfo(),并指示C1不要抛出404错误,你打电话Composite.Core.Routing.Pages.C1PageRoute.RegisterPathInfoUsage(),让C1知道"衣服"是一个有效的类别.
在此处阅读有关API的更多信息.
如果您需要处理选择类别时的不同情况,并且当用户直接点击/ myshop时,您可以将MyShop页面设置为使用特定模板,并在那里将<rendering:contentplaceholder>元素包装在具有某些功能的函数中一种别的 - 如果逻辑.如果未选择任何类别,则打印出内容<rendering:contentplaceholder>,否则根据类别进行一些查找并打印出其他内容.