Заполнение раскрывающегося списка из типа значения

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

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

ViewBag.MyListOfOptions = new SelectList(new int[] { 5, 15, 25, 50 });

И мой взгляд выглядит так:

@Html.DropDownListFor(model => model.MyIntField, new SelectList(ViewBag.MyListOfOptions , [dataValueField], [dataTextField]))

Большинство найденных мною примеров dataValueField и dataTextField — это свойства, которые следует использовать при создании раскрывающегося списка, но я не нашел способа использовать DropDownListFor со значением. типы


person t3mujin    schedule 26.01.2012    source источник


Ответы (2)


Поскольку вы создали SelectList из MyListOfOptions, который уже является SelectList, вы можете использовать «Текст» и «Значение».

@Html.DropDownListFor(model => model.MyIntField, 
    new SelectList(ViewBag.MyListOfOptions , "Value", "Text"))

Но вам не нужно снова оборачивать SelectList, так что это тоже сработает:

@Html.DropDownListFor(model => model.MyIntField,
    (IEnumerable<SelectListItem>)ViewBag.MyListOfOptions)
person nemesv    schedule 26.01.2012
comment
Идеально! Я представлял, что это будет что-то настолько простое, как это - person t3mujin; 26.01.2012

Один простой способ обойти это — использовать этот подход, используя ViewModel:

раскрывающийся список устанавливает выбранное значение в MVC3 Razor

Страница макета MVC 3, шаблон Razor и раскрывающийся список

person Leniel Maccaferri    schedule 26.01.2012