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
.
Что делать, если «модель», которую вы хотите использовать, не является «официальной» моделью, но некоторые данные передаются в «ViewBag»? – thecoop
Используйте DropdownList. Я обновляю свой ответ. – Doomsknight