我有一个具有名为“Widgets”的子节点的页面。我想在我的页面模板的某个部分渲染该孩子的模板。目前,我这样做:在Umbraco 7.x中按名称获取子节点
@{
foreach (var child in CurrentPage.Children)
{
if (child.Name == "Widgets")
{
@Umbraco.RenderTemplate(child.Id)
}
}
}
有没有一种方法,以避免通过孩子们喜欢这个不必循环?
我也发现我可以这样做:
@{
@Umbraco.RenderTemplate(
Model.Content.Children
.Where(x => x.Name == "Widgets")
.Select(x => x.Id)
.FirstOrDefault())
}
但我真的很希望有一个更简洁的方式来做到这一点,因为我可能要做到这一点在几个地方在特定网页上。
我真的没有问题需要特定的小部件命名约定,因为这里的用例是私人和每个站点。试图找出完成任务的最简单的方式。 – Chris
仍认为它不能比我给出的例子少冗长和更安全。如果您想在相同的设置中使用较少的代码:Model.Content.CurrentPage.First(x => x.Name ==“Widget”)。Id – dampee
糟糕。当然,CurrentPage应该是Childeren。这就是说,如果你想使用动态的话,你可以用CurrentPage替换Model.Content。 – dampee