У меня есть модель, которая имеет List<SelectListItem>
который содержит список третьих сторон.
На мой взгляд, мне нужно пройти через список и создать DropDownList для этих данных на основе идентификатора, который у меня есть, называемого "SelectedEntityId".
Я делаю официальное ForEach:
@foreach (строка var в Model.Lines) {
И затем, я пытаюсь сделать свой выпадающий список:
@Html.DropDownListFor(x=>line.SelectedEntityId, new SelectList(Model.ThirdParties, "Value", "Text"), "Select One", new{@class="form-control"})
Тем не менее, хотя я вижу (в режиме отладки), что значение "SelectedEntityId" имеет значение 5 (в данном случае), и что Model.ThirdParties имеет это значение элемента - выпадающее меню не отображает этот элемент, а скорее его в разделе "Выбрать один".
Я думаю, что возможно мой синтаксис x=>line.SelectedEntityId
неверен?
Я получаю предупреждение о слове "строка" там, говоря "Access to foreach variable in closure. May have different behaviour when compiled with different versions of compiler."
Могу ли я сделать это в foreach
и ссылаться на значение элемента в моем foreach
?
что line
здесь. Поскольку я знаком, это должно быть как x=>x.SelectedEntityId
но код x=>x.SelectedEntityId
- это хорошо, и он должен хорошо угадывать, что у вас есть поля Value и Text в вашем списке. я видел некоторые примеры, слишком связанные с этим, посмотрите ниже ссылки, если вы все еще сталкиваетесь с какой-то проблемой.
ThirdParties
ужеIEnumerable<SelectListItem>
почему вы создаете новыйSelectList
из него? Обратите внимание, что это не будет отправлять обратно правильно, так как все выпадающие списки будут иметь одинаковый атрибутname
- для этого вам нужен циклfor
чтобы элементы управления были правильно проиндексированыfor
цикла вместо циклаforeach
.