我正在使用后端模块,因此Node.GetCurrent()
不是一个选择。我需要找到一种方法来调用类似Node currentNode = new Node(parentNodeId);
的方法并获取站点的根节点。我已经在XSLT中看到了示例,但对于C#却一无所获。有人知道我该怎么做吗?
即使只是获取根节点的ID,以便我可以调用new Node()
也很好。
rootnode始终可用:
var rootNode = new Node(-1);
Umbraco 7的更新(可能也适用于早期版本)
@{
var siteroot = CurrentPage.AncestorOrSelf(1);
}
有关更多信息,请查看文档-> http://our.umbraco.org/Documentation/Reference/Querying/DynamicNode/Collections
Umbraco 6+的更新
public static IPublishedContent GetRootNode()
{
var umbracoHelper = new UmbracoHelper(UmbracoContext.Current);
var rootNode = umbracoHelper.TypedContentSingleAtXPath("//root"));
return rootNode;
}
这只是使用文档类型别名,并使用当前的Umbraco上下文找到根节点为IPublishedContent。 UmbracoHelper还为您提供了很多选择。
Brennan是正确的,
var rootNode = new DynamicNode(-1);
也可以使用!
Umbraco 7:
Umbraco.TypedContentAtRoot();
我经常使用这个。我喜欢这是相对的,因此,如果您有多个根节点,则可以在不使用foreach循环的情况下将两者作为目标。
IPublishedContent topNode = Model.Content.AncestorOrSelf(1);