3

在这个问题中,我正在寻找链接/代码来处理IList<OrderLine>MVC 2 编辑表单中的一个。具体来说,我有兴趣向客户发送完整的订单,然后使用:

Html.EditorFor(m => m.orderlines[i])(其中 orderlines 是一个可枚举对象)将编辑后的订单发布回一个对象(以保持)

编辑具有多个订单行(两个表,Order 和 OrderLine,一对多)的订单显然很困难。 是否有任何链接/示例/模式来建议如何创建此表单,以单个表单(在 C# MVC 2 中)编辑实体和相关实体?

IList 真的让我陷入了一个循环。我应该把它放在那里(同时仍然有一个表格来编辑一个订单)吗?您如何使用服务器端工厂在表单中创建一个空白的 OrderLine,而不将整个表单发送回服务器?我希望我们不要使用单独的保存按钮、删除等来处理单独的订单行(例如,他们可能会打开订单,删除所有行,然后单击取消,这不应该改变订单本身存储库或数据库。

示例类:

public class ViewModel {
    public Order            order       {get;set;}  // Only one order
}

public class Order {
    public int              ID          {get;set;} // Order Identity
    public string           name        {get;set;}
    public IList<OrderLine> orderlines  {get;set;} // Order has multiple lines
}

public class OrderLine {
    public int              orderID     {get;set;} // references Order ID above
    public int              orderLineID {get;set;} // Order Line identity (need?)
    public Product          refProduct  {get;set;} // Product value object
    public int              quantity    {get;set;} // How many we want
    public double           price       {get;set;} // Current sale price
}
4