Ответ 1
Корневой каталог всегда доступен как:
var rootNode = new Node(-1);
Я работаю над бэкэнд-модулем, поэтому Node.GetCurrent()
не вариант. Мне нужно найти способ вызвать что-то вроде Node currentNode = new Node(parentNodeId);
и получить root node сайта. Я видел образцы в XSLT, но ничего для С#. Кто-нибудь знает, как я могу это сделать?
Даже просто получить идентификатор корня node, чтобы я мог вызвать new Node()
, было бы здорово.
Корневой каталог всегда доступен как:
var rootNode = new Node(-1);
Обновление для Umbraco 7 (может работать и в более ранних версиях)
@{
var siteroot = CurrentPage.AncestorOrSelf(1);
}
Для получения дополнительной информации ознакомьтесь с документацией → http://our.umbraco.org/Documentation/Reference/Querying/DynamicNode/Collections
Бреннан прав,
var rootNode = new DynamicNode(-1);
работает также!
Обновление для Umbraco 6 +
public static IPublishedContent GetRootNode()
{
var umbracoHelper = new UmbracoHelper(UmbracoContext.Current);
var rootNode = umbracoHelper.TypedContentSingleAtXPath("//root"));
return rootNode;
}
Это просто берет псевдоним типа документа и находит корень node как IPublishedContent, используя текущий контекст Umbraco. UmbracoHelper также предоставляет вам несколько вариантов.
Umbraco 7:
Umbraco.TypedContentAtRoot();