ASP.NET MVC 2: Механика, стоящая за заказом / строкой заказа в форме редактирования

В этом вопросе я ищу ссылки / код для обработки 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
}

person Zachary Scott    schedule 24.05.2010    source источник


Ответы (1)


Вам необходимо понимать привязку модели List ‹> / Array / IEnumerable:

http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx

http://blog.stevensanderson.com/2010/01/28/editing-a-variable-length-list-aspnet-mvc-2-style/

http://www.hanselman.com/blog/ASPNETWireFormatForModelBindingToArraysListsCollectionsDictionaries.aspx

person John Farrell    schedule 24.05.2010
comment
Вау, этот фильм Стивенса Андерсона невероятен. Это именно то, что мне было нужно. - person Zachary Scott; 25.05.2010