簡體   English   中英

自定義類從我的控制器傳遞給我的視圖

[英]custom class being passed to my view from my controller

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”?

我的看法

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

如何在我的視圖中訪問“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>
    }

}

使用位於視圖文件頂部的@model指令:

 @model IEnumerable<KeyValuePair<String, DataTable>>

有了它,您現在可以開始在您的視圖中使用您的(視圖)模型及其屬性:

   @model IEnumerable<KeyValuePair<String, DataTable>>

<h1>@Model</h1>

由於您將強類型指定為視圖的模型,您將獲得通過 IntelliSense 訪問對象成員的幫助,並且您的代碼將在構建過程中得到驗證,以確保您只使用找到的屬性/方法在模型對象上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM