Я работаю в MVC и у меня есть представление, которое выглядит следующим образом
//UPDATED
@foreach (Site s in sites)
{
<tr style="color:black">
@foreach (var col in ViewBag.OffReportColumns)
{
<th>@col </th>
}
</tr>
<tr style="color:black">
@foreach (var cell in ViewBag.OffReportRows)
{
<td>@cell</td>
}
</tr>
<tr style="font-size: 20px">
@foreach (var cell in ViewBag.OffReportTotal)
{
<td>@cell</td>
}
</tr>
}
И метод контроллера, который выглядит следующим образом
List<string> OffReportColumns = new List<string>(7);
List<List<string>> OffReportRows = new List<List<string>>();
List<List<string>> OffReportTotal = new List<List<string>>();
foreach (Site s in sites)
{
OffReportColumns.Add(s.Name);
OffReportColumns.Add("");
OffReportColumns.Add("");
OffReportColumns.Add("Average Cost");
OffReportColumns.Add("");
OffReportColumns.Add("");
OffReportColumns.Add("Average Cost With Labour");
OffReportRows.Add(new List<string>
{
"Parts",
"",
"",
osiPartCost[s.ID].ToString("C2"),
"",
"",
osiPartCost[s.ID].ToString("C2")
});
OffReportRows.Add(new List<string>
{
"",
"600000 series",
osiOpc6[s.ID].ToString("C2"),
"",
"600000 series",
osiOpc6[s.ID].ToString("C2"),
""
});
OffReportRows.Add(new List<string>
{
"",
"700000 series",
osiOpc7[s.ID].ToString("C2"),
"",
"700000 series",
osiOpc7[s.ID].ToString("C2"),
""
});
OffReportRows.Add(new List<string>
{
"",
"800000 series",
osiOpc8[s.ID].ToString("C2"),
"",
"800000 series",
osiOpc8[s.ID].ToString("C2"),
""
});
OffReportRows.Add(new List<string>
{
"Tools",
"",
"",
osiTools[s.ID].ToString("C2"),
"",
"",
osiTools[s.ID].ToString("C2"),
});
OffReportRows.Add(new List<string>
{
"",
"900000 series",
osiOpc9[s.ID].ToString("C2"),
"",
"900000 series",
osiOpc9[s.ID].ToString("C2"),
""
});
OffReportRows.Add(new List<string>
{
"",
"Other",
osiOpco[s.ID].ToString("C2"),
"",
"Other",
osiOpco[s.ID].ToString("C2"),
""
});
OffReportRows.Add(new List<string>
{
"Components",
"",
"",
osiCompCost[s.ID].ToString("C2"),
"",
"",
osiLoCompCost[s.ID].ToString("C2")
});
OffReportRows.Add(new List<string>
{
"Items",
"",
"",
osiItemCost[s.ID].ToString("C2"),
"",
"",
osiLoItemCost[s.ID].ToString("C2")
});
OffReportTotal.Add(new List<string>
{
"Total",
"",
"",
osiTotal[s.ID].ToString("C2"),
"",
"",
osiFltotal[s.ID].ToString("C2")
});
ViewBag.OffReportRows = OffReportRows;
ViewBag.OffReportColumns = OffReportColumns;
ViewBag.OffReportTotal = OffReportTotal;
}
Вот модель моего сайта
public class Site
{
public int ID { get; set; }
public string Name { get; set; }
public string Address { get; set; }
public string City { get; set; }
public string Province { get; set; }
public string PostalCode { get; set; }
}
У меня есть 5 сайтов в моей таблице "Сайты". Моя цель - создать таблицу для каждого сайта. Прямо сейчас это то, что происходит

Как видите, столбцы работают правильно, а не создают их для каждой таблицы. И вы также можете видеть, что «OffReportTotals», кажется, там нет. Проблема в том, что все они печатаются в нижней части страницы, поэтому это выглядит так:

Я знаю, что это просто делает список длиннее каждый раз он повторяет l oop и фактически не создает новый список каждый раз. Но как я могу сделать так, чтобы вместо того, чтобы расширять список, он просто создает новый список каждый раз, когда просматривает его.