我必須創建一個發票視圖。我有很多模型(表格),我希望在發票的一個視圖中顯示來自多個模型的所有數據。我創建了一個空的(沒有模型)視圖並放入了部分視圖。其中的局部視圖返回一個視圖與一個模型,但這種解決方案還給我例外...這是我的工作: 這是我在控制器操作:在單個視圖中顯示多個模型
public ActionResult Customer()
{
var data = db.Customer;
return PartialView("Index", data);
}
public ActionResult Invoice()
{
var data = db.Invoice;
return PartialView("Index", data);
}
public ActionResult Dealer()
{
var data = db.Dealer;
return PartialView("Index", data);
}
public ActionResult Paid()
{
var data = dane.Paid;
return PartialView("Index", data);
}
public ActionResult Products()
{
var data = dane.Products;
return PartialView("Index", data);
}
這是局部視圖之一:
@model IEnumerable<Invoice_v1._0.Models.Products>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.Name)
</th>
<th>
@Html.DisplayNameFor(model => model.Price)
</th>
<th>
@Html.DisplayNameFor(model => model.Amount)
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.Price)
</td>
<td>
@Html.DisplayFor(modelItem => item.Amount)
</td>
</tr>
}
</table>
這是我的「索引」視圖,局部視圖:
@Html.Partial("_Customer")
@Html.Partial("_Invoice")
@Html.Partial("_Dealer")
@Html.Partial("_Paid")
@Html.Partial("_Products")
我該如何解決這些問題?
什麼/異常在哪裏? –
使用'@ Html.Action()'是你想調用一個控制器方法,返回一個包含數據的局部視圖。 (或使用包含所有填充數據的視圖模型) –
我還注意到,僅僅因爲在視圖中有不同的「表」,沒有必要使用部分視圖。這種做法的慣用方法是創建一個ViewModel,該ViewModel包含視圖所需的所有數據,並將其用作視圖的「模型」。部分視圖更適用於可放入不同父視圖內的_reusable_視圖。 –