在 Umbraco 中访问来自直接父级的内容

Accesing the content from immediate parent in Umbraco

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

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

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

不确定我是否完全理解,尤其是为什么您不想通过节点 ID 访问...您当前的内容项有一个路径 属性,其中所有祖先 ID 都列在逗号分隔列表中.难道你不能只拆分那个字符串和 select 哪个级别(我猜是第 2 级的祖先 [2])来获取该节点的 ID。然后你可以去

var level2AncestorId = Umbraco.AssignedContentItem.Path.Split(',')[2];
var openingTimesByDescendants = rootByTraversing.Descendants().Where(f => f.Id == (int)level2AncestorId && f.DocumentTypeAlias == "PageLevel2").FirstOrDefault();

它应该只给你一个节点,它应该是直接祖先。对吗?