[英]List properties of my model are not being passed to the View from the Controller
[英]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.