2016-11-25 131 views
0

我有三种文档类型及其相应的模板。我的树如下所示。从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()); 

但是,这是获得父节点正确的方式?