Мой выпадающий не получает значение в режиме редактирования в MVC - PullRequest
1 голос
/ 26 сентября 2019

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

Я сделал объект модели как массив [0], потому что я создаю выпадающий список во время выполнения, я имею в виду, что он динамический

 @Html.DropDownListFor(model => model.educations[0].Grade, new SelectList(ViewBag.Grades, "Id", "Name"),  new { @id = "ddlGrades", @class = "btn form-text" })

Это то, что я пробовал, если я использую @html.textboxFor, затем он получает значение 6 из БД и привязывает к нему текстовое поле, но не работает с выпадающим списком

@Html.DropDownListFor(model => model.educations[0].Grade, new SelectList(ViewBag.Grades, "Id", "Name"),  new { @id = "ddlGrades", @class = "btn form-text" })

@Html.ValidationMessageFor(model => model.educations[0].Grade, "", new { @class = "text-danger" })

Ответы [ 2 ]

0 голосов
/ 27 сентября 2019

Это ограничение помощника DropDownListFor, который не может извлечь значение из сложного лямбда-выражения, такого как то, которое вы используете (лямбда-выражение, содержащее доступ к индексу массива).Один из возможных обходных путей:

    person => person.Addresses[i].State, 
    new SelectList(
        Model.AvailableStates, 
        "Text", 
        "Value", 
        Model.Addresses[i].State
    )
) %>```
0 голосов
/ 27 сентября 2019

Вам просто нужно передать выбранное значение в SelectList для редактирования.

@Html.DropDownListFor(model => model.educations[0].Grade, new SelectList(ViewBag.Grades, "Id", "Name",SelectedValue),  new { @id = "ddlGrades", @class = "btn form-text" })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...