У меня есть метод контроллера, который выглядит следующим образом
foreach (Site s in sites)
{
SummaryReportModel[] summaryReports = new SummaryReportModel[sites.Count + 1];
foreach (OffSiteItemDetails d in s.ItemDetails)
{
model.OffReportColumns = new List<string>()
{
s.Name,
"",
"",
"Average Cost",
"",
"",
"Average Cost (With labour)"
};
model.OffReportRows = new List<List<string>>()
{
new List<string>()
{
"Parts",
"",
"",
osiPartCost[s.ID].ToString("C2"),
"",
"",
osiPartCost[s.ID].ToString("C2")
},
new List<string>()
{
"",
"600000 series",
osiOpc6[s.ID].ToString("C2"),
"",
"600000 series",
osiOpc6[s.ID].ToString("C2"),
""
},
new List<string>()
{
"",
"700000 series",
osiOpc7[s.ID].ToString("C2"),
"",
"700000 series",
osiOpc7[s.ID].ToString("C2"),
""
},
new List<string>()
{
"",
"800000 series",
osiOpc8[s.ID].ToString("C2"),
"",
"800000 series",
osiOpc8[s.ID].ToString("C2"),
""
},
new List<string>()
{
"Tools",
"",
"",
osiTools[s.ID].ToString("C2"),
"",
"",
osiTools[s.ID].ToString("C2"),
},
new List<string>()
{
"",
"900000 series",
osiOpc9[s.ID].ToString("C2"),
"",
"900000 series",
osiOpc9[s.ID].ToString("C2"),
""
},
new List<string>()
{
"",
"Other",
osiOpco[s.ID].ToString("C2"),
"",
"Other",
osiOpco[s.ID].ToString("C2"),
""
},
new List<string>()
{
"Components",
"",
"",
osiCompCost[s.ID].ToString("C2"),
"",
"",
osiLoCompCost[s.ID].ToString("C2")
},
new List<string>()
{
"Items",
"",
"",
osiItemCost[s.ID].ToString("C2"),
"",
"",
osiLoItemCost[s.ID].ToString("C2")
},
};
model.OffReporTotal = new List<List<string>>()
{
new List<string>()
{
"Total",
"",
"",
osiTotal[s.ID].ToString("C2"),
"",
"",
osiFltotal[s.ID].ToString("C2")
},
};
}
}
model.osiGrandTotal = new List<List<string>>()
{
new List<string>()
{
"OSI Grand Total",
"",
"",
ostotal.ToString("C2"),
"",
"",
ofltotal.ToString("C2")
},
};
return model;
}
}
}
Вот моя модель
public class SummaryReportModel
{
public string Title { get; set; }
public string ReportTitle { get; set; }
public string OffReportTitle { get; set; }
public List<string> ValuationColumns { get; set; }
public List<string> OffReportColumns { get; set; }
public List<List<string>> ValuationRows { get; set; }
public List<List<string>> OffReportRows { get; set; }
public List<List<string>> Total { get; set; }
public List<List<string>> OffReporTotal { get; set; }
public List<List<string>> Tital { get; set; }
public List<List<string>> SecondTital { get; set; }
public List<List<string>> osiGrandTotal { get; set; }
}
Вот мой взгляд
<tr style="color:black">
@foreach (var col in Model.OffReportColumns)
{
<th>@col </th>
}
</tr>
@foreach (var row in Model.OffReportRows)
{
<tr style="color:black">
@foreach (var cell in row)
{
<td>@cell</td>
}
</tr>
}
@foreach (var row in Model.OffReporTotal)
{
<tr style="font-size: 20px">
@foreach (var cell in row)
{
<td>@cell</td>
}
</tr>
}
В настоящее время, что происходит является то, что таблица будет получать все данные для «сайта», но когда она зацикливается, данные перезаписываются, поэтому она возвращает данные только для последнего «сайта» в таблице. Я не уверен в том, что является лучшим способом go исправить это, но я подумал, может быть, если бы я смог создать массив, в котором будут храниться все таблицы, которые затем я смог бы вернуть в представление и отображение данные таблицы. Но я не уверен, возможно ли это вообще. Или, может быть, есть лучший способ сделать то, что я пытаюсь сделать. Я открыт для предложений