2012-02-02 3 views

ответ

2

SelectedId - это просто целое поле в модели.

модель передается из контроллера с использованием

return View(myModel); 

и модель может быть определена в представлении в верхнем

@model mymodelnamespace.RoomBookingInsert 

Так ценность выпадающей DropDownBoxая имеет значение в качестве SelectedId поля в вашей модели.

Правильное имя поля, например, должно быть RoomNo, если это уточняет его.

@Html.DropDownListFor(model => model.RoomNo, model.Rooms); 

Пока model.DropDownItems (или model.Rooms в моем примере) содержит элемент со значением этого атрибута, он будет установить его в качестве выбранного элемента в списке по умолчанию.

Edit:

Если вы используете viewbag, а не модель, а не использовать DropDownList. (Каждый вход имеет for расширение для использования с моделями)

@Html.DropDownList("RoomNo", 
     new SelectList(ViewBag.Rooms as System.Collections.IEnumerable ?? Enumerable.Empty<SelectListItem>(), "RoomNo", "RoomName"), 
     new { @value = @ViewBag.RoomNo}) 

Это выше, создает форму ввода с идентификатором RoomNo,

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

Последний бит устанавливает значение по умолчанию для содержимого @ViewBag.RoomNo.

Вы также можете создать список выбора в контроллере, а затем просто установить выпадающие параметры для объекта viewbag.myselectList.

+0

Что делать, если «модель», которую вы хотите использовать, не является «официальной» моделью, но некоторые данные передаются в «ViewBag»? – thecoop

+0

Используйте DropdownList. Я обновляю свой ответ. – Doomsknight

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