3 回答

TA贡献1810条经验 获得超5个赞
在第一个代码片段中,所有站点的所有列都添加到一个列表中。二维正在变成一维。如果没有循环,它实际上可以写成
OffReportColumns.Add("Eric Car Stock ");
OffReportColumns.Add("");
OffReportColumns.Add("");
OffReportColumns.Add("Average Cost");
OffReportColumns.Add("");
OffReportColumns.Add("");
OffReportColumns.Add("Average Cost With Labour");
OffReportColumns.Add("In-House Use ");
OffReportColumns.Add("");
OffReportColumns.Add("");
OffReportColumns.Add("Average Cost");
OffReportColumns.Add("");
OffReportColumns.Add("");
OffReportColumns.Add("Average Cost With Labour");
OffReportColumns.Add("Havey Kuhar's Car Stock ");
OffReportColumns.Add("");
OffReportColumns.Add("");
OffReportColumns.Add("Average Cost");
OffReportColumns.Add("");
OffReportColumns.Add("");
OffReportColumns.Add("Average Cost With Labour");
第二个代码片段表示:“对于每个站点(其中有 3 个),创建一个表行。在每行中,对于每个 OffReportColumns(其中有 21 个),创建一个表列,其中包含来自内部循环的文本。
这就是为什么来自所有站点的所有列都出现在 3 行的每一行上的原因。
OffReportColumns更好的方法是根本没有该列表。相反,视图可以这样写
@foreach (Site s in sites)
{
<tr>
<td>@s.Name</td>
<td></td>
<td></td>
<td>Average Cost</td>
<td></td>
<td></td>
<td>Average Cost With Labour</td>
</tr>
}
这将为每个站点创建一行 7 列。每行的第一列将是站点的名称。

TA贡献1890条经验 获得超9个赞
正如您在评论中所述,有两列是静态数据,唯一的动态数据是网站可以简单地循环抛出网站并显示它们,如下所示
@foreach (Site s in sites)
{
<tr style="color:black">
<td>@Site</td>
<td>Average Cost</td>
<td>Average Cost with Labour</td>
</tr>
}
您还可以删除添加列到控制器中的列表和视图包,因为它们不是必需的。

TA贡献1998条经验 获得超6个赞
我给你一个简单的例子,这样你就可以实现它,在全窗口中打开它以正确查看它
正如您在评论中所述,有两列是静态数据,唯一的动态数据是网站可以简单地循环抛出网站并显示它们,如下所示
@foreach (Site s in sites)
{
<tr style="color:black">
<td>@Site</td>
<td>Average Cost</td>
<td>Average Cost with Labour</td>
</tr>
}
您还可以删除添加列到控制器中的列表和视图包,因为它们不是必需的。
- 3 回答
- 0 关注
- 106 浏览
添加回答
举报