我知道每个循环通常专注于一个数组,但是我是 Umbraco 的新手,我想知道这是否可能?
我的代码如下:
<div>
<div class="row">
@foreach (var feature in homePage.CSSHomepages.Where("featuredPage"))
{
<div class="3u">
<!-- Feature -->
<section class="is-feature">
<a href="@feature.Url" class="image image-full"><img src="@feature.Image" alt="" /></a>
<h3><a href="@feature.Url">@feature.Name</a></h3>
@Umbraco.Truncate(feature.BodyText, 100)
</section>
<!-- /Feature -->
</div>
}
</div>
</div>
这目前显示一个特色页面,但是我也尝试显示来自"HTMLHomepages"的特色页面。
我尝试了以下代码无济于事:
<div>
<div class="row">
@foreach (var feature in homePage.CSSHomepages.Where("featuredPage") & homePage.HTMLHomepages.Where("featuredPage"))
{
<div class="3u">
<!-- Feature -->
<section class="is-feature">
<a href="@feature.Url" class="image image-full"><img src="@feature.Image" alt="" /></a>
<h3><a href="@feature.Url">@feature.Name</a></h3>
@Umbraco.Truncate(feature.BodyText, 100)
</section>
<!-- /Feature -->
</div>
}
</div>
</div>
但正如我所料,我遇到了运行时错误。有什么建议吗?
您收到的运行时错误与 umbraco 无关。您有一个 &-符号。 这在剃刀语言中不存在。您至少应该使用 &&
这意味着 AND。但是在这种情况下,您不想使用 AND 和 AND 运算符,而是使用 OR 运算符:||
。 如果您正在检查if
语句中的某些内容,则这一切都是正确的。
在这里,您正在循环访问一个数组。这意味着您需要在循环遍历它们之前连接这两个 arrary。 通常,您会从Umbraco API获得两个IEnumerable
。 要将两个 IEnumerables 连接在一起,您可以使用 Concat(请参阅 MSDN)函数。
我会做什么:
@{
var featureList = homePage.CSSHomepages.Where("featuredPage").Concat(homePage.HTMLHomepages.Where("featuredPage"))
}
<div class="row">
@foreach( var feature in featureList) {
// your existing code
}
</div>