代码之家  ›  专栏  ›  技术社区  ›  Zachary Scott

ASP.NET MVC 2:编辑表单中订单行/订单行后面的机制

  •  3
  • Zachary Scott  · 技术社区  · 15 年前

    在这个问题中,我正在寻找链接/代码来处理 IList<OrderLine> 在MVC 2编辑窗体中。具体来说,我感兴趣的是向客户发送一个完整的订单,然后使用以下方法将编辑后的订单发回对象(以持久化):

    html.editorfor(m=>m.orderlines[i]) (其中orderlines是可枚举对象)

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

    那个伊利斯特人真的在骗我。我应该把它放在那里吗(同时还有一个表单可以编辑一个订单)?如何使用服务器端工厂在表单中创建空白订单行,而不将整个表单发回服务器?我希望我们不要用单独的保存按钮、删除等来处理单独的订单行(例如,它们可以打开一个订单,删除所有的行,然后单击取消,这不应该改变存储库或数据库中的订单本身。

    示例类:

    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
    }
    
    推荐文章