从 Umbraco 中的子节点获取所有根节点的列表
Get list of all root nodes from child node in Umbraco
我有三种文档类型及其对应的模板。我的树如下图
1. Video List
2. Video Item
3. Item Details
视频列表页面列出了视频项目模板中的所有项目。 Item Details是Video Item模板的子节点。我想要项目详细信息页面中视频项目中的所有节点。
我试过下面的代码。但它显示为 Xpath 需要一些程序集参考。
Model.Content.XPath("//*[@isDoc and @level = 1]");
请帮忙
我有一个解决方案。这是我的代码:
var parentClass = Umbraco.TypedContent(Model.Content.Id).Parent.Parent.Children.Where(x => x.DocumentTypeAlias == "videoItem" && x.IsVisible());
但这是获取父节点的正确方法吗?
这个不难做。使用 @Ancestor
,然后在 @foreach
循环中使用 @Children
。在 Umbraco 页面上阅读有关使用 Umbraco 遍历的更多信息。
假设我们在项目详细信息模板(或页面,随便你怎么称呼它)上,你需要列出你所有的 parents 和你的 parents' 兄弟姐妹(如果我明白的话正确)。所以你去 'grandparent' 然后你要求 children:
@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。
我有三种文档类型及其对应的模板。我的树如下图
1. Video List
2. Video Item
3. Item Details
视频列表页面列出了视频项目模板中的所有项目。 Item Details是Video Item模板的子节点。我想要项目详细信息页面中视频项目中的所有节点。
我试过下面的代码。但它显示为 Xpath 需要一些程序集参考。
Model.Content.XPath("//*[@isDoc and @level = 1]");
请帮忙
我有一个解决方案。这是我的代码:
var parentClass = Umbraco.TypedContent(Model.Content.Id).Parent.Parent.Children.Where(x => x.DocumentTypeAlias == "videoItem" && x.IsVisible());
但这是获取父节点的正确方法吗?
这个不难做。使用 @Ancestor
,然后在 @foreach
循环中使用 @Children
。在 Umbraco 页面上阅读有关使用 Umbraco 遍历的更多信息。
假设我们在项目详细信息模板(或页面,随便你怎么称呼它)上,你需要列出你所有的 parents 和你的 parents' 兄弟姐妹(如果我明白的话正确)。所以你去 'grandparent' 然后你要求 children:
@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。