2016-11-25 10 views
0

私は3つのドキュメントタイプとそれに対応するテンプレートを持っています。私の木は以下の通りです。Umbracoの子ノードからすべてのルートノードのリストを取得

1. Video List 
    2. Video Item 
     3. Item Details 

ビデオ一覧ページリストビデオ商品テンプレート内のすべての項目。アイテムの詳細は、ビデオアイテムテンプレートの子ノードです。アイテムの詳細ページのビデオアイテムのすべてのノードが必要です。

私は以下のコードを試しました。しかし、Xpathがアセンブリ参照を必要としていることを示しています。

Model.Content.XPath("//*[@isDoc and @level = 1]"); 

私は一つの解を得た

答えて

1

これは難しくありません。 @foreachループでは@Ancestor、次に@Childrenを使用してください。 UmbracoページでのUmbracoのトラバースの詳細をお読みください。

私たちはアイテムの詳細テンプレート(または、あなたがそれを呼びたいと思っているもの)にして、あなたの両親とあなたの両親の兄弟を(私が正しく理解していれば)リストする必要があると仮定します。だからあなたは「祖父母」に行き、子供たちに頼む:

@foreach (var item in Model.Content.Ancestor("VideoList").Children) 
    { 
     //do whatever you feel like in the collection. 
     //This foreach loop will list you all the Video Item nodes. 

    } 

P.S.私は、VideoListがあなたのビデオリストページにあるdocTypeAliasであると仮定しました。

0

を助けてください。ここに私のコードです:

var parentClass = Umbraco.TypedContent(Model.Content.Id).Parent.Parent.Children.Where(x => x.DocumentTypeAlias == "videoItem" && x.IsVisible()); 

これは親ノードを取得する正しい方法ですか?

関連する問題