我有一個OrderViewModel,它包含一個子類_DetailsViewModel的實例。 OrderViewModel具有訂單標題信息,_DetailsViewModel包含訂單詳細信息。儘管是單獨的模型,但它們都具有相同的單一數據源..訂單表。細節在他們自己的視圖模型中的原因是這些字段在相同的視覺佈局中被重用在不同的視圖上,所以我將它們放在部分視圖中以根據需要重用。這裏是我的主,子視圖模型的想法:在MVC中加載子模型時遇到問題4
public class OrderViewModel
{
public string OrderNum { get; set; }
public string CustonerName{ get; set; }
public double SalesPrice{ get; set; }
public _Details Details { get; set; }
}
public class _DetailsViewModel
{
public string PhoneNum { get; set; }
public string ItemNum { get; set; }
public double Quantity { get; set; }
public string PayMethod{ get; set; }
public string Comments { get; set; }
}
在我的控制器,我將其稱爲Orders表中返回的所有數據,並返回訂購實體列表的服務。
orderService = new OrderService();
var orders = orderService.GetOrderInfo(StoreNum);
從那裏我使用Omu.ValueInjecter將結果注入主視圖模型。
var orderViewModel = orders
.Select(x => new
OrderViewModel().InjectFrom(x)).Cast<OrderViewModel>()
.ToList();
return View(orderViewModel);
我還需要填充_Details模型,這樣我可以從我的主要訂單查看內傳遞到局部視圖...象下面這樣:
@ Html.Partial(「_訂單明細」, Model._Details)
有沒有一種方法可以從已經填充主訂單模型的單個服務調用填充_Details模型?我是否必須將_Details屬性添加到主Order View中,然後遍歷Order視圖以手動設置相應_Details Model的每個字段?當然,我錯過了一些東西。
謝謝...
感謝。如何將detailsModel添加到orderViewModel,然後傳遞給Order View? orderViewModel.Details = detailsModel ??? 或者是否需要迭代以添加每個訂單的詳細信息?如果你能展示一些示例代碼,我會非常感激。 – user2167861
「OrderViewModel」中的屬性應該是這樣的:public _DetailsViewModel Details {get;組; }'? –
是的。其實這只是一個錯字。它在我的實際代碼中設置爲_DetailsViewModel。 – user2167861