umbraco - 从 Umbraco 中的直接父级访问内容
问题描述
我正在尝试从 Umbraco 的子级别访问我的 2 级文档类型的内容。级别 2 有多个相同文档类型的页面。我正在使用下面的代码
var rootByTraversing = Umbraco.AssignedContentItem.AncestorOrSelf(2);
var openingTimesByDescendants = rootByTraversing.Descendants().Where(f => f.DocumentTypeAlias == "PageLevel2").FirstOrDefault();
我是否可以获得此文档类型的直接父节点而不是 FirstOrDefault 节点?我不想通过节点 ID 访问内容。
解决方案
不确定我是否完全遵循,尤其是为什么您不想通过节点 ID 访问...您当前的内容项具有 Path 属性,其中所有祖先 ID 都列在逗号分隔的列表中。您不能只拆分该字符串并选择任何级别(如我猜的级别 2 的祖先 [2])来获取该节点的 ID。然后你可以去像
var level2AncestorId = Umbraco.AssignedContentItem.Path.Split(',')[2];
var openingTimesByDescendants = rootByTraversing.Descendants().Where(f => f.Id == (int)level2AncestorId && f.DocumentTypeAlias == "PageLevel2").FirstOrDefault();
哪个应该只给你一个节点,它应该是直接祖先。正确的?
推荐阅读
- flutter - 我可以在 Flutter 中使用自定义环境变量吗?
- python - 对于严重不平衡的数据集,成本敏感分类器失败
- django - 有没有办法在 django 的管理面板中创建信息框或标题
- java - jar 文件在 linux 中执行,但在 windows 中不执行
- mysql - 从单个 MYSQL 请求中选择两个变量
- c# - 增加使用 Azure 部署的 K8s 集群中的最大文件上传大小(在 ASP.NET Core 中使用 C# 和 React 的项目)
- java - 在 Android Studio 中打开链接的按钮
- spring-boot - 无法在使用 @ExtendWith(SpringExtension.class) 运行的 Spring Boot 单元测试中注入应用程序上下文
- angularjs - 从 ag-grid 单元格模板访问范围
- azure-devops - 我可以使用 API 在 Azure DevOps 中为管道设置“手动和计划构建的默认分支”吗?