2015-09-23 4 views
0

Я пытаюсь создать выпадающие списки, чтобы установить значения элементов в массиве. У меня есть этот простой объект для хранения деталей одной комнатыПочему мой Html.DropDownListFor неправильно отображает значение модели?

public class RoomOccupants 
{ 
    public int adults { get; set; } 
    public int children { get; set; } 
    public int infants { get; set; } 
} 

и массива этих объектов на моей модели для хранения информации обо всех номерах

public RoomOccupants[] rooms { get; set; } 

В моем шаблоне бритвы я м создания выпадающего списка, как этого

<label>Guests in Room 1</label><br /> 
<label>Adults</label> 
@Html.DropDownListFor(model => model.rooms[0].adults, Model.passengerOptions, new { autocomplete = "off" }) 

<label>Children</label> 
@Html.DropDownListFor(model => model.rooms[0].children, Model.passengerOptions, new { autocomplete = "off" }) 

<label>Infants</label> 
@Html.DropDownListFor(model => model.rooms[0].infants, Model.passengerOptions, new { autocomplete = "off" }) 

The Model.passengerOptions список SelectListItem для целых чисел 0 - 9, который я использую в нескольких падений падения. Он создается в конструкторе модели следующим образом.

passengerOptions = new List<SelectListItem>(); 
passengerOptions.Add(new SelectListItem() { Value = "0", Text = "0"}); 
passengerOptions.Add(new SelectListItem() { Value = "1", Text = "1" }); 
passengerOptions.Add(new SelectListItem() { Value = "2", Text = "2" }); 
passengerOptions.Add(new SelectListItem() { Value = "3", Text = "3" }); 
passengerOptions.Add(new SelectListItem() { Value = "4", Text = "4" }); 
passengerOptions.Add(new SelectListItem() { Value = "5", Text = "5" }); 
passengerOptions.Add(new SelectListItem() { Value = "6", Text = "6" }); 
passengerOptions.Add(new SelectListItem() { Value = "7", Text = "7" }); 
passengerOptions.Add(new SelectListItem() { Value = "8", Text = "8" }); 
passengerOptions.Add(new SelectListItem() { Value = "9", Text = "9" }); 

Когда я отладки кода я вижу, что моя модель содержит правильные значения, но все падение вниз списки всегда отображать 0.

Я создал несколько капель спады, которые работают хорошо на той же страницу, используя тот же список параметров, но они не находятся в массивах, так что, может быть, это все?

+0

Что такое 'Model.passengerOptions'? – user1666620

+1

Нет ничего плохого в отправленном коде, если 'Model.passengerOptions' не содержит ничего странного. – DavidG

+0

комментировать последние два кода с выпадающим списком и посмотреть, что происходит –

ответ

0

Не знаю, точно ли это из-за массива, может быть. Вместо этого попробуйте, List ..This будет работать правильно.

общественный список < SelectedListItem> комнаты {get; set;} в модели.

И вы можете напрямую использовать свойство модели.

@ Html.DropDownListFor (модель => model.infants, Model.passengerOptions, новый {автозаполнения = "выключено"})

Спасибо.

@ Html.DropDownListFor (модель => model.children, Model.passengerOptions, новый {автозаполнения = "выключено"})

@ Html.DropDownListFor (модель => model.adults, Model.passengerOptions, новые {autocomplete = "off"})

Спасибо. :)

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