2017-07-08 7 views
-1

を作成し、私は4つのプロパティを持つモデルがあり、各プロパティはList<T>のC#MVCかみそりビューforeachのは、ダイナミックテーブルの列に

今、私はテーブルを構築したいと4 propetiesのそれぞれからのデータがそれにあります表示されますです自分の列。プロパティーには項目の量が異なることがあります。

enter image description here

はどうすれば私のモデルの性質をループとは、自分のコラムでその項目を表示することができますか?

public class ViewModel 
{ 
    public class List<Custom1> Prop1 {get; set;} 
    public class List<Custom2> Prop2 {get; set;} 
    public class List<Custom3> Prop3 {get; set;} 
    public class List<Custom4> Prop4 {get; set;} 
} 

Custom1, Custom2, Custom3, Custom4 are all POCO clases and have one common property called Name. 
+0

あなたのモデルを見ずにこの質問に答えるのは難しいです。 – Jasen

+0

@Jasen:updated question – user2818430

+0

プロパティの中で最大長(M)を探します。次に_for_ループを使用してM回反復処理します。インデクサ 'model.Prop1 [i]'を使用したアクセス。それぞれのコレクションが異なるサイズなので、範囲外にならないようにチェックする必要があります。 – Jasen

答えて

3

プロパティの中で最大長(M)を探します。その後、forループを使用してM回繰り返します。インデクサmodel.Prop1[i]を使用したアクセス。それぞれのコレクションが異なるサイズなので、範囲外にならないようにチェックする必要があります。

@{ 
    int rowCount = GetMax(model.Prop1, model.Prop2, model.Prop3); 
    int p1Size = model.Prop1.Count(); 
    int p2Size = model.Prop2.Count(); 
    int p3Size = model.Prop3.Count(); 
} 

@for (int i = 0; i < rowCount; i++) 
{ 
    var c1 = (i < p1Size) ? model.Prop1[i] : ""; 
    var c2 = (i < p2Size) ? model.Prop2[i] : ""; 
    var c3 = (i < p3Size) ? model.Prop3[i] : ""; 

    <tr><td>@c1</td><td>@c2</td><td>@c3</td></tr> 
} 
関連する問題