Выберите значение по умолчанию в раскрывающемся списке для 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;