2015-09-27 2 views
0

Мое содержание структурировано следующим образом.Найти тип документа в сложной структуре Umbraco 7

  • Корень
    • вебсайту
      • Главная
        • Page 1
        • Page 2
        • страница N
    • Сайт B
      • Главная
    • Сайт C
      • Главная

Home Каждый DOCUME nt подключается к шаблону основного макета. В моем макете макета я пытаюсь найти узел Home, написав этот код.

var home = Model.Content.Siblings().FirstOrDefault(x => x.DocumentTypeAlias == "Home"); 

Это работает, когда им на Home узле, но когда я иду в отл. Page 1 Я получаю исключение, потому что Home не является родным братом для Page 1.

Тогда я попробовал это.

var home= Umbraco.TypedContentAtXPath("//Home").FirstOrDefault(); 

И это работало, когда я был в Website A, так как он вернулся первый узел. Но когда на Website B у меня все еще есть Website A узел, и это неправильно.

Любые советы о том, как это решить?

ответ

0

Я нашел решение к ней:

var home = Model.Content.AncestorOrSelf(2).Children().FirstOrDefault(x => x.DocumentTypeAlias == "Home"); 
4

несколько различных способов для достижения этой цели, но следующее будет наиболее сжато:

var home = Model.Content.AncestorsOrSelf("Home").FirstOrDefault(); 
Смежные вопросы