1. ホーム
  2. asp.net-mvc-3

[解決済み] ASP MVC 3で1つのビューに2つのモデル

2023-02-22 15:11:01

質問

2つのモデルを持っています。

public class Person
{
    public int PersonID { get; set; }
    public string PersonName { get; set; }
}
public class Order
{
    public int OrderID { get; set; }
    public int TotalSum { get; set; }
}

両方のクラスのオブジェクトを1つのビューで編集したいので、次のようなものが必要です。

@model _try2models.Models.Person
@model _try2models.Models.Order

@using(Html.BeginForm())
{
    @Html.EditorFor(x => x.PersonID)
    @Html.EditorFor(x => x.PersonName)
    @Html.EditorFor(x=>x.OrderID)
    @Html.EditorFor(x => x.TotalSum)
}

もちろん、これはうまくいきません。.cshtmlファイルでは、1つの'model'ステートメントしか許可されていません。もしかしたら、何か回避策があるのでしょうか?

どのように解決するのですか?

両方のモデルを含む親ビューモデルを作成します。

public class MainPageModel{
    public Model1 Model1{get; set;}
    public Model2 Model2{get; set;}
}

こうすることで、後日、非常に少ない労力でモデルを追加することができます。