Доступ к контенту от непосредственного родителя в Umbraco - PullRequest
0 голосов
/ 20 февраля 2019

Я пытаюсь получить доступ к контенту из моего типа документа уровня 2 с подуровня в Umbraco.Уровень 2 имеет несколько страниц одного типа документа.Я использую код ниже

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

Могу ли я получить непосредственный родительский узел этого типа документа, а не узел FirstOrDefault?Я не хочу получать доступ к контенту через идентификатор узла.

1 Ответ

0 голосов
/ 20 февраля 2019

Не уверен, что я полностью следую, особенно почему вы не хотите получать доступ через идентификатор узла ... Ваш текущий элемент контента имеет свойство Path, в котором все идентификаторы предков перечислены в списке через запятую.Не могли бы вы просто разделить эту строку и выбрать какой-либо уровень (как я предполагаю, предки [2] для уровня 2), чтобы получить идентификатор этого узла.Тогда вы можете сделать что-то вроде

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

, что должно дать вам только один узел, и это должен быть прямой предок.Правильно?

...