我在
下面有一个结构链接PageOne
列
- ColumnItem-One
- ColumnItems-Two
- ColumnItems-Three
- ColumnItems-Four
PageTwo
列
- ColumnItems-OneB
- ColumnItems-TwoB
我有一个局部视图,我想显示每个子列项,但目前我正在使用后代,它返回所有6个项目而不是PageOne上的4个和PageTwo上的2个项目。
我的代码是
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
var root = Model.Content;
var tiles = root.Descendants("tiles");
if(tiles.Count() > 0)
{
<div class="row tile-row">
@foreach(var node in tiles)
{
<div class="col-md-3">
<div class="tile">
<h3>@(node.GetPropertyValue("tileTitle"))</h3>
@(node.GetPropertyValue("tileBodyText"))<br/>
<a class="btn btn-more" href="@(node.GetPropertyValue("tileButtonLink"))">@(node.GetPropertyValue("tileButtonText"))</a>
</div>
</div>
}
</div><!--/.row-->
}
}
如果我将后代更改为Children(),我会收到一个错误页面。
Thansk
答案 0 :(得分:3)
如果您从PageOne
或PageTwo
调用部分视图,则在使用强类型对象时可以执行以下操作:
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
// Get this PageOne or PageTwo object
var page = Model.Content;
// Get the column node that is descendant of this page
var column = root.Descendants("columnAlias");
// Get all children of the column node that are published
var childs = column.Children.Where(x => x.IsVisible());
if(childs.Count() > 0)
{
<div class="row tile-row">
@foreach(var node in childs)
{
<div class="col-md-3">
<div class="tile">
<h3>@(node.GetPropertyValue("tileTitle"))</h3>
@(node.GetPropertyValue("tileBodyText"))<br/>
<a class="btn btn-more" href="@(node.GetPropertyValue("tileButtonLink"))">@(node.GetPropertyValue("tileButtonText"))</a>
</div>
</div>
}
</div><!--/.row-->
}
}