請求書のビューを1つ作成する必要があります。私は多くのモデル(テーブル)を持っており、複数のモデルからのすべてのデータを請求書の一視点で表示したいと考えています。空の(モデルなしの)ビューを1つ作成し、部分的なビューを作成しました。部分図の一つは、一つのモデルと1つのビューを返しますが、このソリューションは私に例外を返す...これが私の仕事です:複数のモデルを単一のビューで表示
@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>
:
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);
}
これは、部分図の一つである: これは、コントローラの私の行動であります
これは、一部の景色を望む私の「インデックス」の図である。
@Html.Partial("_Customer")
@Html.Partial("_Invoice")
@Html.Partial("_Dealer")
@Html.Partial("_Paid")
@Html.Partial("_Products")
は、私はそれらを解決することができますか?その上
if (Model != null && Model is Customer)
Html.Partial("_Customer", Model as Customer)
、および:
何が例外ですか? –
'@ Html.Action()'を使用すると、データを含む部分的なビューを返すコントローラメソッドを呼び出せますか? (または、すべてのデータが入っているビューモデルを使用してください) –
ビューに異なる「テーブル」があるという理由だけで、部分ビューを使用する必要はありません。慣用的なやり方は、ビューに必要な_all_のデータを組み込んだViewModelを作成し、これをビューの「モデル」として使用することです。部分ビューは、異なる親ビューの中に入ることができる_reusable_ビューのためにより多くあります。 –