Получить корневой узел многосайтовой установки Umbraco 6

Как получить корневой домашний узел текущего сайта при установке Umbraco 6 Multi site?

Структура такова:

Content
  --Home1
    --About
    --Contact
  --Home2
    --About
    --Contact
  --Home3
    --About
    --Contact

person wingyip    schedule 29.03.2014    source источник


Ответы (5)


var root = Model.Content.AncestorOrSelf("[YourHomeNodeDocumentType]");

Я не уверен, что это синтаксис Umbraco 6, но вы хотите, чтобы вызов AncestorOrSelf проходил. У меня много многосайтовых и многоязычных настроек, и я постоянно ими пользуюсь. Часть «или я» забавна, в некоторых случаях этот «корневой» узел является страницей.

person Sébastien Richer    schedule 30.03.2014

Это работает

var rootId = (CurrentPage.Path.Split(','))[1];
person wingyip    schedule 30.03.2014

Это зависит от того, хотите ли вы динамический объект или строго типизированный объект DynamicNode, но я предпочитаю делать это строго типизированным способом, поэтому я полагаюсь на

var root = CurrentModel.AncestorOrSelf(1);

person Carl Sargunar    schedule 31.03.2014

В зависимости от версии Umbraco 6 вы можете использовать

IPublishedContent rootNode = Umbraco.TypedContentAtRoot().FirstOrDefault();

для сайта с одним корневым узлом или

IEnumerable<IPublishedContent> rootNode = Umbraco.TypedContentAtRoot();

для сайта с несколькими корневыми узлами, как в вашем случае. Оба они будут работать для версий, более близких к треку версии 7.

person Francis Benyah    schedule 30.12.2016

Я обычно использую:

Model.Content.AncestorOrSelf(1);

or

IPublishedContent topNode = Model.Content.AncestorOrSelf(1);
person Gcamara14    schedule 23.10.2019