ASP.NET MVC редактирование набора лучшие практики - Ваше мнение

Поскольку у вас уже есть новый список в списке результатов, вы можете решить его с помощью списка результатов и добавить его в список клиентов.

customers.clear();
for(Customer newCustomer: result){
   if(newCustomer.user_id != 3){
       customers.add(newCustomer);
   }
}

Второй вариант - перебирать список клиентов. используя ListIterator

ListIterator<Customer> iter = customers.listIterator();
while(iter.hasNext()){
    if(iter.next().user_id == 3){
         iter.remove();
     }
}

или

customers.removeIf(customer -> customer.user_id == 3);
13
задан Brant Bobby 27 May 2009 в 20:53
поделиться

5 ответов

Используйте FormCollection и выполните итерации через пары ключ/значение. По-видимому, можно использовать схему именования, которая позволит Вам определять, какие пары ключ/значение принадлежат Вашему набору атрибута.

[AcceptVerbs( HttpVerb.POST )]
public ActionResult Whatever( FormCollection form )
{
 ....
}
3
ответ дан 1 December 2019 в 22:58
поделиться

Зависит от опыта, который Вы надеетесь создавать для пользователя. Я реализовал что-то подобное для меток содержания. В модели Теги представлены как IList, но UI показывает, что запятая разграничила список в единственном текстовом поле. Я затем обрабатываю слияние объектов в списке в строку для заполнения текстового поля, и я разделил вход для откладывания объектов в IList в модели.

В моем DAL я затем имею дело с преобразованием Списка в объекты LINQ, дескриптор вставляет и удаляет и т.д.

Это не самый прямой код, но не слишком трудно справиться, и это дает пользователю ожидаемый интерфейс.

Я уверен, что существуют другие способы обработать его, но я сфокусировался бы на том, что будет работать лучше всего на пользователя и затем разрабатывать отображающиеся детали на основе этого.

0
ответ дан 1 December 2019 в 22:58
поделиться

Andrew,

Я думаю что-то немного более трудное, чем теги. В этом простом случае имя / оценивают пару.. цвет: Красный; размер: 10; материал: хлопок.

Я думаю что-либо, что могло использоваться на этом, мог расшириться на более сложный. Т.е. Добавление категории и добавление всех ее объектов на той же странице. Относительно легко добавить другую строку с помощью некоторого jQuery, но каково согласие по отправке информации к ActionMethod?

Вы не можете кодировать:

public ActionResult Whatever(stirng attr1Name, string attr2Name, string attr3Name ...

Также я не думаю, признавая, что это работало бы также:

public ActionResult Whatever(ILIst<Attribute> attributes, string productName ...
0
ответ дан 1 December 2019 в 22:58
поделиться

Используйте настраиваемую привязку модели и напишите методы действия, как обычно:

ActionResult Edit(
  int id, 
  [ModelBinder(typeof(ProductModelBinder))] Product product
) ...

В ProductModelBinder вы перебираете значения коллекции форм и выполняете привязку к сущности Product. Это делает интерфейс контроллера интуитивно понятным и может помочь при тестировании.

class ProductModelBinder : IModelBinder ...
3
ответ дан 1 December 2019 в 22:58
поделиться

Посмотрите сообщение в блоге Стива Сандерсона Редактирование списка переменной длины в стиле ASP.NET MVC 2 .

Контроллер

Ваш метод действия получает вашу собственную модель предметной области Продукт и остается довольно простым:

public ActionResult Edit(Product model)

View

Edit.aspx

<!-- Your Product inputs -->
<!-- ... -->

<!-- Attributes collection edit -->
<% foreach (Attribute attr in Model.Attributes)
   {
       Html.RenderPartial("AttributeEditRow", attr);
   } %>

AttributeEditRow.ascx

Обратите внимание на вспомогательное расширение Html.BeginCollectionItem (string)

<% using(Html.BeginCollectionItem("Attributes")) { %>
    <!-- Your Attribute inputs -->
<% } %>

Также возможно добавление и редактирование новых атрибутов. См. Сообщение.

14
ответ дан 1 December 2019 в 22:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: