2012-08-13 10 views
11

私はバックエンドモジュールで作業しているので、Node.GetCurrent()はオプションではありません。私はNode currentNode = new Node(parentNodeId);のようなものを呼び出し、サイトのルートノードを取得する方法を見つける必要があります。 XSLTでサンプルを見たことがありますが、C#ではサンプルがありません。私はこれをどのように達成できるのか誰にも分かりますか?Umbraco - C#でルートノードを見つける

私はnew Node()と呼ぶことができるので、ルートノードのIDを取得するだけですばらしいことになります。

var rootNode = new DynamicNode(-1); 

作品だけでなく、

var rootNode = new Node(-1); 

答えて

14

ルートノードは、常に利用可能です!

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().First()](https://our.umbraco.org/forum/developers/api-questions/47125-How-to-get-the-root-node-in-Umbraco-67#comment-168666 )がうまくいくかもしれません。 –

+0

@ThomHubersはルートノードが1つだけ必要です。 currentpageが2番目のルートノードにある場合、これは機能しません。 –

+0

これは、この回答に加えて、求められなかったルートノードのリストを返します。最初のツリーでないノードのルートノードを検索する最善の方法は、ユースケースによって異なります。ほとんどの場合、私はドキュメントタイプを利用しています。 –

関連する問題