为每个循环指定两个模型/数组



我知道每个循环通常专注于一个数组,但是我是 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>

相关内容

  • 没有找到相关文章

最新更新