c# - Umbraco C# - 在 foreach 循环上显示 2 个不同的列 (1-2) (1-2)

标签 c# asp.net-mvc asp.net-mvc-4 umbraco umbraco7

我试图在 foreach 循环(bootstarp 列)中按 1-2 的顺序显示来自 Umbraco 的数据,但我的代码按 1-1 列的顺序显示,而不是1-2 循环。它不会将第二列添加到第二行,仅添加一列。

例如1 个项目,然后 2 个项目,然后再次显示 1 个具有不同列的项目。

在内容循环中制作 1-2 的更好方法是什么? 我对这个有点迷失了。任何帮助都会很好。

 <div class="container-fluid" style="padding-left: 117px;">

   <div class="row" style="margin-top: 5em;">

    <div class="col-lg-9 col-md-9 col-sm-9">

      <!-- BLOG START-->

   @foreach(var data in Model.Content.Children().Where(x => !x.GetPropertyValue<bool>("umbracoNaviHide"))){

        if(data.HasValue("blogNested")){

           var items = data.GetPropertyValue<IEnumerable<IPublishedContent>>("blogNested");

           int i = 0 ;

            foreach(var item in items){

             <div class="row">

             @if(i % 2 == 0) {

               <div class="col-md-4 col-sm-12">
                    <div class="card">
                        <img src=" /media/1180/dude.jpg" style="height: 15em;">
                     </div>
                 </div> 

            <div class="col-md-6 col-sm-12">
                <span class="card-text qs-blog-direcao">@(item.GetPropertyValue<string>("tipoDeDirecao"))</span><br><br>
                <span class="qs-blog-date-1page">@(item.GetPropertyValue<string>("dataDePublicacaoBlog"))</span><br>
                <span class="qs-blog-publicado-por"> @(item.GetPropertyValue<string>("publicadoPorBlog")) - OPINIÃO </span><br><br><br>
                <span class="qs-blog-titulo-1page">@(item.GetPropertyValue<string>("tituloBlog"))</span>
            </div>   

            <div class="col-md-12 col-sm-12" style="margin-top:2em;">
                <span class="qs-blog-resumo d-flex justify-content-start">@(item.GetPropertyValue<string>("resumoBlog"))</span>
                <span class="d-flex justify-content-end"><a><img src=" /media/1027/icon_inf_verde.png"></a></span>
            </div>  



           } 

              else {

                <div class="col-md-6 col-sm-12">
                        <span class="card-text qs-blog-direcao-double">@(item.GetPropertyValue<string>("tipoDeDirecao"))</span><br>
                        <img src=" /media/1182/tempo.jpg" style="height: 10em;margin-top: 2em;">
                        <div class="qs-blog-sideByside">
                        <span class="qs-blog-date-1page-double">@(item.GetPropertyValue<string>("dataDePublicacaoBlog"))</span><br>
                        <span class="qs-blog-publicado-por-double"> @(item.GetPropertyValue<string>("publicadoPorBlog")) - OPINIÃO </span>
                        </div>
                        <div class="qs-blog-titulo-1page-double">@(item.GetPropertyValue<string>("tituloBlog"))</div>
                        <div class="qs-blog-resumo-blog d-flex justify-content-start">@(item.GetPropertyValue<string>("resumoBlog"))</div>
                        <span class="d-flex justify-content-end"><a><img src=" /media/1027/icon_inf_verde.png"></a></span>
                </div>

                }


           @{i++;}

   </div>


        }


    }  
}

  <!-- BLOG START-->
</div>

最佳答案

可能是这样的

var items = data.GetPropertyValue<IEnumerable<IPublishedContent>>("blogNested")
    .ToList();

while (items.Any())
{
    var oneItem = items.First();
    items.Remove(oneItem);

    <div class="row">
        <div class="col-md-12">
            @oneItem.Id
        </div>
    </div>

    var twoItems = items.Take(2).ToList();

    if (twoItems.Any())
    {
        <div class="row">
            @foreach (var item in twoItems)
            {
                items.Remove(item);
                <div class="md-6">
                    @item.Id
                </div>
            }
        </div>
    }
}

这将呈现

<div class="row">
    <div class="col-md-12">
        <text>{{Id}}</text>
    </div>
</div>
<div class="row">
    <div class="md-6">
        <text>{{Id}}</text>
     </div>
     <div class="md-6">
          <text>{{Id}}</text>
     </div>
</div>
<div class="row">
    <div class="col-md-12">
        <text>{{Id}}</text>
    </div>
</div>
...

关于c# - Umbraco C# - 在 foreach 循环上显示 2 个不同的列 (1-2) (1-2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55876980/

相关文章:

c# - 为什么将 XAML 图像源设置为 URI 比使用 HttpClient 获取图像更快?

asp.net-mvc - ASP.NET MVC WebApi : No parameterless constructor defined for this object

c# - 如何在 SoapHttpClientProtocol 中设置 User-Agent header ?

c# - 未使用 ASP.NET MVC EditorTemplate

c# - 捆绑 css 文件 - 找不到文件

c# - 将 IP 地址(整数)解析为名称

WCF DataContract 的 C# 类结构

c# - 在 Entity Framework Core 中包含集合

c# - mvc3 razor 引擎是否支持 List.ForEach() 的输出

c# - MVC 框架未调用自定义 AuthorizeAttribute