Выберите значение по умолчанию в раскрывающемся списке для MVC 4
Я пытаюсь сделать dropdownlistfor с выбранным значением, но он не работает:/И я ищу в Интернете, но я не нашел решение:/
На данный момент я делаю это:
В С#:
ViewBag.ID_VEH = new SelectList(db.VEHI, "ID_VEH", "COD_VEH", 4); // 4 is an example
В моем cshtml:
@Html.DropDownListFor(model => model.ID_VEH, ViewBag.ID_VEH as SelectList)
Выпадающий список полностью заполнен, но значение по умолчанию не выбрано:/у вас есть идея, пожалуйста?
Ответы
Ответ 1
Что мне нравится делать, это добавить список элементов для отображения в раскрывающемся списке моей модели, поэтому мне не нужно передавать этот список через viewbag.
Также мне нравится добавлять поле к моей модели, которая содержит SelectedValue, что я заполняю контроллер
Затем вы можете сделать
@Html.DropDownListFor(model => model.ID_VEH, new SelectList(Model.listVEH, "ID_VEH", "COD_VEH", Model.SelectedVEH_ID), "--Select VEH--")
Ответ 2
просто установите начальное значение model.ID_VEH равным 4:
В контроллере:
model.ID_VEH = 4;
Ответ 3
На всякий случай у кого-то есть проблемы с поиском ответа:
Я хочу, чтобы представление с раскрывающимися окнами фокусировалось на элементах, которые я указывал (жестко запрограммированный) в контроллере:
Контроллер:
SGLDataRegistration.Models.DataRegistrationModel mdl = rwd.GetData(DateTime.Now.Year, currentWeek, DateTime.Now, 139, 1);
Вид:
<div id="tempCustomerselect">
@Html.LabelFor(m => m.CustomerName)
@Html.DropDownListFor(m => m.PitchID, new SelectList((new SGLDataRegistration.Models.CustomerModel().GetRoles()).OrderBy(x => x.CustomerName), "PitchID", "CustomerName"), new {id = "ddlCustomer", @class="jsddlCustomer"})
</div>
В этом GetData я устанавливаю требуемые значения жестко запрограммированными:
public SGLDataRegistration.Models.DataRegistrationModel GetData (int year, int weekNumber, DateTime datum, int pitchID, int parameter) { пытаться { DataRegistrationParameters drp = GetParameter (параметр);
//vul een instantie van het dataregistrationmodel
SGLDataRegistration.Models.DataRegistrationModel drm = new Models.DataRegistrationModel();
drm.WeekNumber = weekNumber;
drm.BeginDay = datum;
drm.Parameter = parameter;
drm.Year = year;
drm.PitchID = pitchID;