我有一个包含4个属性的模型,每个属性都是List<T>
现在我想构建一个表格,4个属性中的每一个的数据都会显示在它自己的列中。这些属性可以包含不同数量的项目。
如何遍历模型的属性并在自己的列中显示它们的项目?
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 :(得分: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>
}