Основная причина, по которой раскрывающийся список не выбирает значение, заключается в том, что вы никогда не указывали, какое значение следует выбрать:
MyTestModel m = new MyTestModel();
m.FileNames = selectLists;
Вы никогда не назначали значение для m.File
, котороеэто выбранное значение для раскрывающегося списка в этом случае.Следовательно, в раскрывающемся списке по умолчанию будет использоваться только метка вашего параметра.
Вам нужно сделать:
MyTestModel vm = new MyTestModel
{
File = "KEY_VALUE_THAT_IS_ON_THE_LIST",
FileNames = selectLists
};
return View(vm);
Также я хотел бы исправить 2 ваших стиля / проблемы кодирования, так как вы довольноНовое в MVC:
1.@Html.DropDownListFor
не работает внутри <td>
??
Нет.Выпадающий список / выбор является допустимым элементом внутри ячейки таблицы.Смотрите скриншот ниже.
![enter image description here](https://i.stack.imgur.com/YhvtS.png)
2.Ваша модель представления уже содержит список выбора
Вы создаете IEnumerable<SelectListItem>
для модели представления, и она передается в SelectList
в представлении для отображения в виде раскрывающегося списка.IEnumerable<SelectListItem>
является SelectList
!Вам не нужно создавать еще один и снова передавать в него список SelectListItem
.
Вместо этого вы можете просто сделать:
@Html.LabelFor(x => x.File)
@Html.DropDownListFor(x => x.File, Model.FileNames, "- select type -" ... })