2016-12-08 28 views
0

我在我的網站使用引導3,我使用MVC剃刀For Each循環來檢索所有在博客主頁上的子項,如下所示:不平衡DIV閉幕DIV每個循環

@{int i = 0;} 
@foreach (var subPage in Model.Content.AncestorOrSelf(2).Children.OrderBy("createDate descending")) 
{ 
    if (i % 2 == 0) 
    { 
     @:<div class="row row-eq-height"> 
    } 

    <div class="col-sm-12 col-md-6"> 
    </div><!-- col-sm-12 col-md-6 --> 

    if (i % 2 != 0) 
    { 
     @:</div><!-- row row-eq-height --> 
    } 
    i++; 
} 

這個工作正常,當我有偶數個子頁面但是當我有奇數個子頁面時,它沒有打到if%2!= 0塊,這意味着最後一行沒有被關閉,然後中斷頁面其餘部分的流程。

我試圖通過在For Each循環後添加if語句來解決這個問題,希望如果我的最終值不是2,它會根據需要添加一個關閉的DIV標記,但是會導致一個不平衡的DIV標記錯誤。

@if (i !% 2 == 0) 
{ 
    </div><!-- row row-eq-height --> 
} 

任何人有任何想法或想法?如果我有一個偶數,它工作得很好,頁面流如預期。

回答

1

foreach環必須內包含的元素(行),然後withing循環,關閉和啓動一個新行每秒子元素(列)

@{int i = 0;} 
<div class="row row-eq-height"> 
    @foreach (var subPage in Model.Content.AncestorOrSelf(2).Children.OrderBy("createDate descending")) 
    { 
     if (i > 0 && i % 2 == 0) 
     { 
      @:</div><div class="row row-eq-height"> 
     } 
     <div class="col-sm-12 col-md-6">xxxxx</div> 
     i++; 
    } 
</div> 

輸出,假設你在收集中有5件物品,將是

<div class="row row-eq-height"> 
    <div class="col-sm-12 col-md-6">xxxxx</div> 
    <div class="col-sm-12 col-md-6">xxxxx</div> 
</div> 
<div class="row row-eq-height"> 
    <div class="col-sm-12 col-md-6">xxxxx</div> 
    <div class="col-sm-12 col-md-6">xxxxx</div> 
</div> 
<div class="row row-eq-height"> 
    <div class="col-sm-12 col-md-6">xxxxx</div> 
</div> 
+0

頂級香蕉,非常感謝。修改我的代碼來移動行元素,它像夢一樣工作。 – richardjgreen