пользовательский класс передается на мой взгляд от моего контроллера - PullRequest
0 голосов
/ 21 февраля 2020
namespace JJ.WebAppliance
{
    public class ReportingTotalsViewModel
    {
        public DataTable MonthByMonth { get; set; }
        public DataTable MonthlyComparisons { get; set; }
        public DataTable Books_Issued_Location_Totals { get; set; }
        public DataTable Inventory_By_Location_Totals { get; set; }
        public DataTable Books_Issued_Vs_Closed { get; set; }
    }
}

В моем контроллере

ReportingTotalsViewModel dataTable = new ReportingTotalsViewModel();
var viewAndDataTable = new List<KeyValuePair<String, DataTable>>();
...
return View(viewAndDataTable);

Как мне открыть "viewAndDataTable" в моем представлении?

My View

                        <tbody>
                            @foreach (DataRow row in ???)
                            {
                                <tr>
                                    <td>@row["Month"]</td>
                                    <td>@row["# Issued"]</td>
                                    <td>@row["# Closed"]</td>
                                    <td>@row["% Closed"]</td>
                                </tr>
                            }
                        </tbody>

Ответы [ 2 ]

1 голос
/ 24 февраля 2020

Как получить доступ к «viewAndDataTable» в моем представлении?

Вы также можете использовать ViewBag/ViewData для передачи данных из контроллера для просмотра. Например,

Действие:

var viewAndDataTable = new List<KeyValuePair<String, DataTable>>();
//populate the list

@ViewData["ViewAndDataTable"] = viewAndDataTable;
return View();

Просмотр:

@foreach (KeyValuePair<String, DataTable> item in (List<KeyValuePair<String, DataTable>>)@ViewData["ViewAndDataTable"])
{

    @foreach (DataRow row in item.Value.Rows)
    {
        <tr>
            <td>@row["Month"]</td>
            <td>@row["# Issued"]</td>
            <td>@row["# Closed"]</td>
            <td>@row["% Closed"]</td>     
        </tr>
    }

}
0 голосов
/ 21 февраля 2020

с использованием директивы @model, расположенной в верхней части файла View:

 @model IEnumerable<KeyValuePair<String, DataTable>>

Теперь, когда вы на месте, вы можете начать использовать вашу (View) модель и ее свойства в вашем View:

   @model IEnumerable<KeyValuePair<String, DataTable>>

<h1>@Model</h1>

Благодаря тому, что вы указали строгий тип в качестве модели представления, вы получите помощь в доступе к членам объекта через IntelliSense, и ваш код будет проверен во время процесса сборки, чтобы убедитесь, что вы используете только свойства / методы, найденные в объекте Model.

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