0

同じビューで 2 つのモデルを使用することは可能ですか (私のビューは私のモデルに強く型付けされており、同じビューで別のモデルを変更する必要があります)。これを行う方法はありますか

4

2 に答える 2

2

ViewModelプロパティを持つ を使用して、他のオブジェクトを表し、modelsそのオブジェクトを に渡しますView

public class CustomerViewModel
{
  public int ID { set;get;}
  public string Name { set;get;}
  public Address Address {set;get;}
  public IList<Order> Orders {set;get;}

  public CustomerViewModel()
  {
     if(Address==null)
         Address=new Address();

     if(Orders ==null)
         Orders =new List<Order>();
  }
}

public class Address 
{
  public string AddressLine1 { set;get;} 
  //Other properties 
}

public class Order
{
  public int OrderID{ set;get;} 
  public int ItemID { set;get;}
  //Other properties 
}

今あなたのアクションメソッドで

public ActionResult GetCustomer(int id)
{
   CustomerViewModel objVM=repositary.GetCustomerFromId(id);
   objVm.Address=repositary.GetCustomerAddress(id);
   objVm.Orders=repositary.GetOrdersForCustomer(id);
   return View(objVM);
}

ビューは次のように入力されますCustomerViewModel

@model CustomerViewModel
@using(Html.BeginForm())
{
  <h2>@Model.Name</h2>
  <p>@Model.Address.AddressLine1</p>
  @foreach(var order in Model.Orders)
  {
    <p>@order.OrderID.ToString()</p>
  }

}
于 2012-07-25T17:03:30.740 に答える
1

2つのモデルを組み合わせた1つのモデルを作成します。それはかなり一般的です:

 public class CombinedModel
    {

        public ModelA MyFirstModel { get; set; }
        public ModelB MyOtherModel { get; set; }


    }
于 2012-07-25T17:01:23.533 に答える