2016-05-09 4 views
0

Часть мой взгляд выглядитASP.NET MVC модель привязки не работает со списком элементов

<table border="1" class="table table-hover"> 
        <tr><th>Item</th><th>Description</th><th>Price</th><th>Quantity</th></tr> 
         <tr> 
          <td>Shirt</td> 
          <td>T-Shirt</td> 
          <td>5.0000</td> 
          <td><select class="form-control" id="items_1_" name="items[1]"><option value="">Select quantity</option> 
<option value="0">0</option> 
<option value="1">1</option> 
<option value="2">2</option> 
<option value="3">3</option> 
<option value="4">4</option> 
<option value="5">5</option> 
</select></td> 
         </tr> 
         <tr> 
          <td>Shirt</td> 
          <td>Full-Sleeve</td> 
          <td>6.0000</td> 
          <td><select class="form-control" id="items_2_" name="items[2]"><option value="">Select quantity</option> 
<option value="0">0</option> 
<option value="1">1</option> 
<option value="2">2</option> 
<option value="3">3</option> 
<option value="4">4</option> 
<option value="5">5</option> 
</select></td> 
         </tr> 
         <tr> 
          <td>Trousers</td> 
          <td>Half</td> 
          <td>4.0000</td> 
          <td><select class="form-control" id="items_3_" name="items[3]"><option value="">Select quantity</option> 
<option value="0">0</option> 
<option value="1">1</option> 
<option value="2">2</option> 
<option value="3">3</option> 
<option value="4">4</option> 
<option value="5">5</option> 
</select></td> 
         </tr> 
         <tr> 
          <td>Trousers</td> 
          <td>Full</td> 
          <td>6.0000</td> 
          <td><select class="form-control" id="items_4_" name="items[4]"><option value="">Select quantity</option> 
<option value="0">0</option> 
<option value="1">1</option> 
<option value="2">2</option> 
<option value="3">3</option> 
<option value="4">4</option> 
<option value="5">5</option> 
</select></td> 
         </tr> 
       </table> 

Мой контроллер выглядит

[HttpPost] 
public ActionResult RequestLaundry(int laundry, int pickuphour, int pickupminute, int[] items) 
{ 
    var req = Request.Form; 
    return View(); 
} 

Данные, размещенные на контроллер с точки зрения выглядит

{прачечная = 1 & pickuphour = 17 & pickupminute = 16 & items% 5b1 % 5d = 5 & пунктов% 5b2% 5d = 0 & пунктов% 5b3% 5d = 1 & пунктов% 5b4% 5d = 4}

Хотя все другие параметры модели становятся связаны с моделью по умолчанию связующего, items является null. Тем не менее, почтовый запрос выглядит хорошо для меня. Я использую ASP.NET MVC 5.0 с VS2015. Где могла быть проблема?

+0

Share мнение Бритвы в форме отправки сообщения. – Rusty

+0

@Rusty Вывод 'Request.Form' находится в конце сообщения –

+0

@Holmes_Sherlock Is Items - список строк/номеров или список сложного типа? Поделитесь моделью, она может многое помочь. – Rusty

ответ

1

У вас отсутствуют элементы [0]
Массив или список основаны на нуле. Модель связующего становится путать, так как он не может найти первый элемент.

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

name="items[]" 
+2

В качестве альтернативы, просто не индексируйте ни одно из них, то есть 'name =" items [] "'. –

+0

Благодарим вас за предложение :) – Rusty

+1

Или (потому что его простой тип свойства) просто 'name =" items "' –

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