Как получить корневой домашний узел текущего сайта при установке Umbraco 6 Multi site?
Структура такова:
Content
--Home1
--About
--Contact
--Home2
--About
--Contact
--Home3
--About
--Contact
Как получить корневой домашний узел текущего сайта при установке Umbraco 6 Multi site?
Структура такова:
Content
--Home1
--About
--Contact
--Home2
--About
--Contact
--Home3
--About
--Contact
var root = Model.Content.AncestorOrSelf("[YourHomeNodeDocumentType]");
Я не уверен, что это синтаксис Umbraco 6, но вы хотите, чтобы вызов AncestorOrSelf проходил. У меня много многосайтовых и многоязычных настроек, и я постоянно ими пользуюсь. Часть «или я» забавна, в некоторых случаях этот «корневой» узел является страницей.
Это работает
var rootId = (CurrentPage.Path.Split(','))[1];
Это зависит от того, хотите ли вы динамический объект или строго типизированный объект DynamicNode, но я предпочитаю делать это строго типизированным способом, поэтому я полагаюсь на
var root = CurrentModel.AncestorOrSelf(1);
В зависимости от версии Umbraco 6 вы можете использовать
IPublishedContent rootNode = Umbraco.TypedContentAtRoot().FirstOrDefault();
для сайта с одним корневым узлом или
IEnumerable<IPublishedContent> rootNode = Umbraco.TypedContentAtRoot();
для сайта с несколькими корневыми узлами, как в вашем случае. Оба они будут работать для версий, более близких к треку версии 7.
Я обычно использую:
Model.Content.AncestorOrSelf(1);
or
IPublishedContent topNode = Model.Content.AncestorOrSelf(1);