ASP.NET MVC 2: Механика за строкой заказа / заказа в форме редактирования - PullRequest
3 голосов
/ 25 мая 2010

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

1 Ответ

3 голосов
...