我有一个包含子 _DetailsViewModel 实例的 OrderViewModel。OrderViewModel 包含订单头信息,_DetailsViewModel 包含订单详细信息。尽管是单独的模型,但它们都具有相同的单一数据源..订单表。细节在他们自己的视图模型中的原因是这些字段在不同的视图上重用,在相同的视觉安排中,所以我把它们放在一个部分视图中,以便根据需要重用。这是我的主要和子视图模型的想法:
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("_OrderDetails", Model._Details)
有没有办法从已经填充主订单模型的单个服务调用填充 _Details 模型?我是否必须将 _Details 属性添加到主订单视图,然后迭代订单视图以手动设置相应 _Details 模型的每个字段?我肯定错过了一些东西。
谢谢...