我正在开发一个后端模块,所以Node.GetCurrent()
不是一个选项。我需要找到一种方法来调用类似的东西Node currentNode = new Node(parentNodeId);
并获取站点的根节点。我在 XSLT 中看到过示例,但在 C# 中没有。有谁知道我怎么能做到这一点?
即使只是获取根节点的 ID 以便我可以调用new Node()
也会很棒。
根节点始终可用:
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 也为您提供了很多选择。
Umbraco 7:
Umbraco.TypedContentAtRoot();
布伦南是正确的,
var rootNode = new DynamicNode(-1);
也可以!
我经常用这个。我喜欢它是相对的,因此如果您有多个根节点,您可以在没有 foreach 循环的情况下同时定位这两个节点。
IPublishedContent topNode = Model.Content.AncestorOrSelf(1);