3

IList<OrderLine>この質問では、MVC2編集フォームでを処理するためのリンク/コードを探しています。具体的には、完全な注文をクライアントに送信してから、

Html.EditorFor(m => m.orderlines [i])(orderlinesは列挙可能なオブジェクト)を使用して、編集した注文をオブジェクトにポストバックする(永続化する)ことに関心があります。

複数の注文明細(2つのテーブル、OrderとOrderLine、1対多)を持つ注文を編集することは明らかに困難です。 エンティティと関連エンティティを単一のフォーム(C#MVC 2)で編集するこのフォームを作成する方法をアドバイスするリンク/例/パターンはありますか?

IListは本当に私をループに投げ込んでいます。(1つの注文を編集するための1つのフォームがまだある間に)そこにあるべきですか?フォーム全体をサーバーにポストバックせずに、サーバー側のファクトリを使用してフォームに空白の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

1 に答える 1