Как динамически добавлять и удалять позиции из представления ASP.NET MVC? - PullRequest
1 голос
/ 27 марта 2009

У меня есть модель PurchaseOrder:

public class PurchaseOrder
{ 
    public string OrderNumber { get; set; }
    public string Customer { get; set; }
    public IList<LineItem> Lines { get; set; }
}

и класс LineItem:

public class LineItem
{ 
   public string PartNumber { get; set; }
   public int Quantity { get; set; }
}

То, что я хочу сделать, это мое действие PurhcaseOrder Create, мне нужен раздел для позиций. Пользователь должен иметь возможность добавить новую строку, удалить строку, а затем отправить. Одним из предостережений является то, что PartNumber должен быть выпадающим списком допустимых частей.

Что я могу сделать, чтобы выполнить то, что я ищу?

Ответы [ 3 ]

1 голос
/ 28 января 2011

http://knockoutjs.com/ очень хорошо для этого.

http://knockoutjs.com/examples/cartEditor.html показывает редактор, который может добавлять / удалять строки и содержит выпадающий список.

и есть старая статья, в которой рассматривается использование Knockoutjs с asp.net mvc - http://blog.stevensanderson.com/2010/07/12/editing-a-variable-length-list-knockout-style/

0 голосов
/ 27 марта 2009

Если вы хотите сделать все без js, то создайте новое действие / представление для добавления и редактирования позиции. Для удаления плохой практикой является удаление ссылки с помощью actionlink, GET никогда не должен изменять данные. Таким образом, хорошим примером является ссылка для удаления на страницу подтверждения. И с этой страницы вы POST к действию удаления (или отменить и вернуться)

0 голосов
/ 27 марта 2009

Я бы создал эту функциональность с помощью jQuery (на стороне клиента)


Номер детали 1345 - 124 позиции [Удалить]
Номер детали 1489 - 101 шт. [Удалить]

[Выбрать номер детали /] [_ Количество _] [Добавить]


Кроме того, вы можете дублировать эту функцию (точно такой же интерфейс) с серверным кодом для клиентов, у которых отключен JS. Чтобы сделать это, вы можете хранить временные LineItems в TempData (на каждом посте назад, когда пользователь нажимает Добавить позицию).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...