访问Umbraco中直接父级的内容

问题描述 投票:0回答:1

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

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

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

umbraco umbraco7
1个回答
1
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.