在每个循环中指定两个 models/arrays?
specifying two models/arrays in a for each loop?
我知道 for each 循环通常关注一个数组,但是我是 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 运算符,而是使用 OR 运算符:||
。如果您在 if
语句中检查某些内容,这一切都是正确的。
这里你正在遍历一个数组。这意味着您需要在遍历它们之前连接两个数组。通常你从 Umbraco API 得到两个 IEnumerable
。要将两个 IEnumerables 连接在一起,您可以使用 Concat (see MSDN) 函数。
我会做什么:
@{
var featureList = homePage.CSSHomepages.Where("featuredPage").Concat(homePage.HTMLHomepages.Where("featuredPage"))
}
<div class="row">
@foreach( var feature in featureList) {
// your existing code
}
</div>
我知道 for each 循环通常关注一个数组,但是我是 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 运算符,而是使用 OR 运算符:||
。如果您在 if
语句中检查某些内容,这一切都是正确的。
这里你正在遍历一个数组。这意味着您需要在遍历它们之前连接两个数组。通常你从 Umbraco API 得到两个 IEnumerable
。要将两个 IEnumerables 连接在一起,您可以使用 Concat (see MSDN) 函数。
我会做什么:
@{
var featureList = homePage.CSSHomepages.Where("featuredPage").Concat(homePage.HTMLHomepages.Where("featuredPage"))
}
<div class="row">
@foreach( var feature in featureList) {
// your existing code
}
</div>