2016-12-09 6 views
5

私はASP.NET MVCとブートストラップを使用します。コレクションには多くのオブジェクト(> 2)があり、必要なものは<div class="col-xs-6">ですが、2列しか表示されません。ループを使ってこれを実現するには? そこ1つの方法があるが、私はもっと良いものを探しています:Razorを使用してループ経由でブートストラップグリッドを適切に生成する方法はありますか?

@model List<Object> 
@using (Html.BeginForm("ActionName", "ControllerName")) 
{ 
    <div class="row"> 
    @for (int i = 0; i < Model.Count; i++) 
    { 
     if (i % 2 != 0) { 
     <div class="row"> 
      <div class="col-xs-6"> 
       @Html.TextBoxFor(o => o[i].Value) 
      </div> 
     </div> 
     } else { 
      <div class="col-xs-6"> 
      @Html.TextBoxFor(o => o[i].Value) 
      </div> 
     } 
    } 
    </div> 
} 

答えて

6

divを閉じて、それはちょうど驚くべきことだすべての第二の繰り返しで

<div class="row"> 
    @for (int i = 0; i < Model.Count; i++) 
    { 
     if (i > 0 && i % 2 == 0) 
     { 
      @:</div><div class="row"> // close and start new row 
     } 
     <div class="col-xs-6"> 
      @Html.TextBoxFor(o => o[i].Value) 
     </div> 
    } 
</div> 
+0

をループ内で新しいものを開始!この建設は決して知らなかった! –

+0

これは本当に驚くべきことですが、表示はうまくいきますが、出力HTMLには最初の2行がDIV行にラップされていません。これは、それ以降の行だけです。 –

+0

@WillStrohl、そうです(あなたが何をやり遂げたかはわかりません) –

関連する問題