从Umbraco的直接上级访问内容

时间:2019-02-20 08:41:15

标签: umbraco umbraco7

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

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

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

1 个答案:

答案 0 :(得分:1)

不确定我是否完全遵循,特别是为什么您不想通过节点ID访问...您当前的内容项具有Path属性,其中所有祖先ID均以逗号分隔的列表列出。您是否只能拆分该字符串并选择任何级别(例如,我想像级别2的ancestors [2])以获取该节点的ID。然后你可以像

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

哪个应该只给您一个节点,它应该是直接祖先。对吧?