我正在尝试从Umbraco的子级别访问我的2级文档类型的内容。级别2具有相同文档类型的多个页面。我正在使用下面的代码
var rootByTraversing = Umbraco.AssignedContentItem.AncestorOrSelf(2);
var openingTimesByDescendants = rootByTraversing.Descendants().Where(f => f.DocumentTypeAlias == "PageLevel2").FirstOrDefault();
是否可以获取此文档类型的直接父节点而不是FirstOrDefault节点? 我不想通过节点ID访问内容。
答案 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();
哪个应该只给您一个节点,它应该是直接祖先。对吧?