处理复合C1中生成的页面

本文关键字:复合 C1 处理 | 更新日期: 2023-09-27 18:15:58

. Net项目,我目前正试图移动到复合我有麻烦处理非物理页面。

为了简单起见,让我们假设我有一个网店,数据库中的每个类别都有自己的url。(例如:/myshop/clothes)

. NET项目,这样的url将被路由到页面类别。处理请求并从数据库中读取类别内容的Aspx。

Composite似乎更关注于"真实"页面,实现这类功能的最佳方式是什么?(特别是路由)

和:是否有办法让这些生成的页面与导航等模块一起工作。比如路径?

处理复合C1中生成的页面

对于菜单生成和面包屑,您需要自己处理它,最终使用SiteMap。解析SiteMapProvider上的事件,动态地钩入"不存在"的页面。

关于路由,C1中有一个功能,将url解析为第一个"真正的页面",并将url的多余部分交给您,您可以使用。假设/myshop是你的商店页面,用户请求/myshop/clothing,那么执行的仍然是/myshow,你可以在其中放入代码来处理你的分类。

在"myshop"页面上提取"衣服"的代码是Composite.Core.Routing.Pages.C1PageRoute.GetPathInfo(),为了指示C1不抛出404错误,调用Composite.Core.Routing.Pages.C1PageRoute.RegisterPathInfoUsage(),让C1知道"衣服"是一个有效的类别。

在这里阅读更多关于它的API。

如果你需要处理不同的情况,当一个类别被选中时,当一个用户直接点击/myshop时,你会设置myshop页面使用一个特定的模板,在那里你会把<rendering:contentplaceholder>元素包装在一个函数中,这个函数有某种else-if逻辑。如果没有选择类别,则打印<rendering:contentplaceholder>的内容,否则根据类别查找并打印其他内容