2016-09-21 12 views
0

私はUmbracoを新しくしました.5つのルートノードがあり、それらのルートノードに含まれるランダムページのリストがあります。これらのページから受け取ったデータはNodeId、NodeName、Levelです。私がしようとしているのは、それぞれのページのルートノード情報を取得することです。残念ながら、これは私が問題を抱えているところです。ルートノードまたはレベル1ノードの情報をNodeIdに基づいて取得する方法があります。Umbraco:ノードIDに基づいてルートノードIDを取得

これは私がこれまで持っているものです:

foreach (var item in pages) 
{ 
    int level = item["level"].AsInt(); 
    if (level > 1){ 
     var currentItem = library.GetCurrentDomains(item.Id); 
    } 
} 

アイブ氏はlibrary.GetCurrentDomains(item.Id)ただし、このdoesntの仕事を試してみました。

+0

より多くのコードと文脈を共有してください。このデータを最初に取得する方法(ID)と、U​​mbracoラッパーを使用してドキュメントの動的または型指定されたオブジェクトを取得してから、Parent/AncestorOrSelfなどのヘルパーメソッドを使用してXMLキャッシュを走査する機能を使用しない理由 –

答えて

1

これは何が必要である、またそれが最善の方法だ場合、あなたは、任意のノードの第二レベルの「ルート」を取得するために

item.Path.Split(',')[1] 

ような何かを行うことができれば全くわかりません。私は思う;-)

0

ランダムなページのリストがすべてIPublishedContentであると仮定すると、ページのルートノードを取得するページで拡張メソッドAncestorOrSelf(1)を使うことができます。例えば。

foreach (var item in pages) 
{ 
    var rootPage = item.AncestorOrSelf(1); 

    //do something with the root node here 
}