同じビューで 2 つのモデルを使用することは可能ですか (私のビューは私のモデルに強く型付けされており、同じビューで別のモデルを変更する必要があります)。これを行う方法はありますか
質問する
697 次
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 に答える