gpt4 book ai didi

c# - 处理 Composite C1 中生成的页面

转载 作者:太空狗 更新时间:2023-10-30 01:08:50 26 4
gpt4 key购买 nike

在我目前正尝试迁移到 Composite 的 ASP.Net 项目中,我在处理非物理页面时遇到了麻烦。

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

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

Composite 似乎更侧重于“真实”页面,实现此类功能的最佳方式是什么? (尤其是路由)

还有:有没有办法让这些生成的页面与 Navigation.Path 等模块一起使用?

最佳答案

对于菜单生成和面包屑,您需要自己处理,最终使用 SiteMap.Resolve SiteMapProvider 上的事件动态 Hook 您的“不存在”页面。

关于路由,C1 中有一个功能,它将 url 解析为第一个“真实页面”,然后将 url 的多余部分交给您,供您使用。假设/myshop 是您的商店页面,并且用户请求了/myshop/clothes,那么执行的仍然是/myshow,您可以在其中放置代码来处理您的类别。

在您的“我的商店”页面上提取“衣服”的代码将是 Composite.Core.Routing.Pages.C1PageRoute.GetPathInfo() ,并指示 C1 不要抛出 404 错误,您调用 Composite.Core.Routing.Pages.C1PageRoute.RegisterPathInfoUsage() , 让 C1 知道“衣服”是一个有效的类别。

阅读有关它的 API 的更多信息 here .

如果您需要处理不同的情况,例如选择类别时以及用户直接点击/myshop 时,您可以将 MyShop 页面设置为使用特定模板,并在其中包装 <rendering:contentplaceholder>具有某种 else-if 逻辑的函数中的元素。如果没有选择类别,打印出<rendering:contentplaceholder>的内容, 否则根据类别进行一些查找并打印出一些其他内容。

关于c# - 处理 Composite C1 中生成的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8288526/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com