Добавление модели в массив моделей в MVC - PullRequest
0 голосов
/ 13 марта 2020

У меня есть метод контроллера, который выглядит следующим образом

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

...