【发布时间】:2026-01-23 19:05:01
【问题描述】:
我必须创建一个发票视图。我有很多模型(表格),我想在一个发票视图中显示来自多个模型的所有数据。我创建了一个空(无模型)视图并放入部分视图。部分视图之一返回一个具有一个模型的视图,但此解决方案返回异常...这是我的工作: 这是我在控制器中的操作:
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,它包含视图所需的所有数据,并将其用作视图的“模型”。部分视图更适用于可以进入不同父视图的可重用视图。
标签: c# asp.net-mvc entity-framework