C# создание нового списка в для l oop вместо его расширения - PullRequest
0 голосов
/ 16 марта 2020

Я работаю в 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 сайтов в моей таблице "Сайты". Моя цель - создать таблицу для каждого сайта. Прямо сейчас это то, что происходит

Interface

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

Totals

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...