首页 > 解决方案 > 从 Umbraco 中的直接父级访问内容

问题描述

我正在尝试从 Umbraco 的子级别访问我的 2 级文档类型的内容。级别 2 有多个相同文档类型的页面。我正在使用下面的代码

var rootByTraversing = Umbraco.AssignedContentItem.AncestorOrSelf(2);
var openingTimesByDescendants = rootByTraversing.Descendants().Where(f => f.DocumentTypeAlias == "PageLevel2").FirstOrDefault();

我是否可以获得此文档类型的直接父节点而不是 FirstOrDefault 节点?我不想通过节点 ID 访问内容。

标签: umbracoumbraco7

解决方案


不确定我是否完全遵循,尤其是为什么您不想通过节点 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();

哪个应该只给你一个节点,它应该是直接祖先。正确的?


推荐阅读