c# - Sitecore 根据父页面的父页面过滤页面
问题描述
我的页面结构
-职业页面 1(模板通用页面)
前端开发人员(普通文件夹)
- Page1(模板-作业页面)
- Page2(模板-作业页面)
- Page3(模板-作业页面)
- Page4(模板-作业页面)
后端开发人员(普通文件夹)
- Page1(模板-作业页面)
- Page2(模板-作业页面)
- Page3(模板-作业页面)
- Page4(模板-作业页面)
-职业页面 2(模板通用页面)
前端开发人员(普通文件夹)
- Page1(模板-作业页面)
- Page2(模板-作业页面)
- Page3(模板-作业页面)
- Page4(模板-作业页面)
后端开发人员(普通文件夹)
- Page1(模板-作业页面)
- Page2(模板-作业页面)
- Page3(模板-作业页面)
- Page4(模板-作业页面)
我的问题是:我的编码方式是,每当我点击(职业第 1 页)时,我都会得到使用工作页面模板的页面列表,所以我得到职业第 1 页的第 1-8 页列表和第 1 页列表-8 职业第 2 页,但我只想要(职业第 1 页)的页面
我已经尝试 GetQueryable 来获取模板 id 等于作业页面模板的页面列表
IQueryable search = context.GetQueryable().Where(x => x.TemplateId == PageID); //这将为我获取从 PageID(Job page) 模板创建的所有页面的列表
当我点击职业页面 1 时,我只想要(职业页面 1)的页面,当我点击职业页面 2 时,我只想要(职业页面 2)的页面列表
解决方案
您也应该过滤Paths
(索引为_path
)。它包含一个ID
' 列表,表示项目所在的路径。所以它看起来像这样(取决于你的模型是什么样的):
contex.GetQueryable<MyType>().Where(x => x.TemplateId == JobPageTemplateId && x.Paths.Contains(careerPageId))
根据您的解决方案的外观,考虑过滤语言_latestversion
以及避免意外结果和潜在重复。
推荐阅读
- javascript - 如何单击 puppeteer 中具有“data-cy”属性的按钮?
- java - 如何在 Java 程序中使用 gif 文件?
- python - 使用 __all__ 传播模块导入到顶部
- javascript - 如何为节点应用程序编写正则表达式,该应用程序的作用就像一个带有条件的简单 JS linter
- c - C- strcmp while using a nested while loop
- python - How do i create a function but in a different way?
- python - Is there a way to compare and highlight differences between multiple csv files sequentially?
- javascript - Firebase 部署错误:错误:任务 36af5812590007491b4e76c59df3b5a9afb37586b8a3eab39bb16d14cacf1c64 失败:6 次尝试后重试耗尽
- php - 在 php-script 中更改日期
- javascript - 如何使用 redux saga 使用 react-navigation