2012-08-13 69 views
11

我正在使用後端模塊,因此Node.GetCurrent()不是一個選項。我需要找到一種方法來調用Node currentNode = new Node(parentNodeId);之類的東西,並獲取該網站的根節點。我在XSLT中看過樣本,但沒有看到C#。有誰知道我能做到這一點?Umbraco - 在C中查找根節點#

即使只是獲得根節點的ID,所以我可以打電話new Node()會很好。

回答

14

的根節點始終可用爲:

var rootNode = new Node(-1); 
5

布倫南是正確的,

var rootNode = new DynamicNode(-1); 

作品以及!

5

更新一把umbraco 6+

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

    return rootNode; 
} 

這只是需要一個文件類型別名並發現使用當前一把umbraco上下文根節點作爲IPublishedContent。 UmbracoHelper也爲你提供了很多選擇。

1

一把umbraco 7:

Umbraco.TypedContentAtRoot(); 
+0

[一把umbraco。 TypedContentAtRoot()。首先()](https://our.umbraco.org/forum/developers/api-questions/47125-How-to-get-the-root-node-in-Umbraco-67#comment-168666 )可能會更好。 – 2016-07-22 18:33:20

+0

@ThomHubers只需要一個根節點。如果currentpage在第二個根節點中,這將不起作用。 – 2016-10-26 12:41:34

+0

這是對這個答案的補充,它返回一個根節點列表,它沒有被要求。在非第一棵樹中檢索節點根節點的最佳方法取決於用例。我在大多數情況下使用文檔類型。 – 2016-10-27 19:43:17