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
}