Простой MVC DropDownListFor

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

 @Html.DropDownListFor(model => model.NumberPassengers, new SelectList(Model.NumberPassengers))

На самом деле не уверен, что делать в моей модели:

public int[] Passengers = { 1, 2, 3, 4, 5, 6 };

person clestbest    schedule 31.07.2012    source источник
comment
Является ли список значений всегда одним и тем же статическим набором?   -  person Kane    schedule 31.07.2012


Ответы (1)


вам нужно создать новый список SelectListItem. Обычно я затем бросаю это в ViewBag для вещей, подобных этому, потому что вы не хотите, чтобы оно возвращалось. Затем привяжите его к своему элементу управления DropDownListFor, вот что я делал несколько раз:

private IEnumerable<SelectListItem> PopulateTimes()
            {
                List<SelectListItem> timeList = new List<SelectListItem>();
                for (int count = 0; count < 24; count++)
                {
                    timeList.Add(new SelectListItem()
                    {
                        Value = count.ToString("00"),
                        Text = count.ToString("00") + ":00",
                        Selected = count == 9,
                    });
                }
                return timeList;
            }

тогда

ViewBag.DepartureTimes = PopulateTimes();

потом

@Html.DropDownListFor(model => model.DepartureTime, (IEnumerable<SelectListItem>)ViewBag.DepartureTimes)
person Liam    schedule 31.07.2012