Umbraco - 在C#中查找根节点

时间:2012-08-13 18:57:42

标签: c# umbraco

我正在处理后端模块,因此Node.GetCurrent()不是一个选项。我需要找到一种方法来调用Node currentNode = new Node(parentNodeId);之类的东西并获取网站的根节点。我在XSLT中看过样本,但C#没有。有谁知道我怎么能做到这一点?

即使只是获取根节点的ID,我也可以调用new Node()

6 个答案:

答案 0 :(得分:15)

根节点始终可用:

var rootNode = new Node(-1);

答案 1 :(得分:7)

Umbraco 7的更新(也可以在早期版本中使用)

@{
    var siteroot = CurrentPage.AncestorOrSelf(1);
}

有关详细信息,请查看文档 - > http://our.umbraco.org/Documentation/Reference/Querying/DynamicNode/Collections

答案 2 :(得分:5)

布伦南是对的,

var rootNode = new DynamicNode(-1);

也有效!

答案 3 :(得分:5)

Umbraco 6 +的更新

public static IPublishedContent GetRootNode()
{
    var umbracoHelper = new UmbracoHelper(UmbracoContext.Current);
    var rootNode = umbracoHelper.TypedContentSingleAtXPath("//root"));

    return rootNode;
}

这只是采用文档类型别名,并使用当前的Umbraco上下文将根节点查找为IPublishedContent。 UmbracoHelper也为你提供了很多选择。

答案 4 :(得分:4)

Umbraco 7:

Umbraco.TypedContentAtRoot();

答案 5 :(得分:0)

我经常使用这个。我喜欢这是相对的,因此,如果您有多个根节点,则可以在没有foreach循环的情况下同时定位两个目标。

IPublishedContent topNode = Model.Content.AncestorOrSelf(1);