2010-05-06 3 views
0

У меня есть следующий foreach. Внутри вы увидите текстовое поле для количества. В нижней части страницы есть кнопка отправки. Какова наилучшая практика для сохранения коллекции таких полей в asp.net MVC. то есть как бы я получить значения в моем контроллерекак запросить коллекцию полей в mvc

<% foreach(var item in Model.Results) { %> 
      <tr class="RowStyle"> 

       <td><input name="quantity" value="<%= item.Quantity %>" class"input-30" /></td> 

      </tr> 
     <% } %> 

ответ

3

блоге Знакомства Фил Хаак на model binding to a list.

Основная идея заключается в том, что вам нужно сообщить об этом связующему объекту о каждом элементе, который вы передаете, чтобы он мог собрать коллекцию предметов с соответствующими данными. Поскольку почта отправляет обратно разделенные запятыми списки данных для каждого имени, вам нужно построить имя с индексами, чтобы все свойства каждого элемента были «сгруппированы» вместе (я предполагаю, что каждый элемент имеет больше свойств, чем просто количество). Это может выглядеть примерно так:

<% int index = 0; 
    foreach(var item in Model.Results) 
    { %> 
     <tr class="RowStyle"> 
     <td> 
      <%= Html.Hidden("items.Index", index) %> 
      <%= Html.TextBox("items[" + index + "].Quantity", item.Quantity, null) %> 
     </td> 
     <td> 
      ... additional properties 
     </td> 
     </tr> 

<% ++index; 
    } %> 
+0

отличная работа! все работает. Очень круто – frosty

Смежные вопросы