Я использую вспомогательный метод DropDownListFor в странице редактирования, и у меня нет удачи, заставляя его выбрать значение, которое я указываю. Я заметил подобный вопрос на Stackoverflow. Предложенное обходное решение было к, "заполните свой SelectList в коде представления". Проблема состоит в том, что я уже попробовал это, и это все еще не работает.
<%= Html.DropDownListFor(model => model.States, new SelectList(Model.States.OrderBy(s => s.StateAbbr), "StateAbbr", "StateName", Model.AddressStateAbbr), "-- Select State --")%>
Я установил точку останова и проверил существование (и законность) модели. AddressStateAbbr. Я просто не уверен, что я пропускаю.
Попробуйте:
<%= Html.DropDownListFor(
model => model.AddressStateAbbr,
new SelectList(
Model.States.OrderBy(s => s.StateAbbr),
"StateAbbr",
"StateName",
Model.AddressStateAbbr), "-- Select State --")%>
или в синтаксисе Razor:
@Html.DropDownListFor(
model => model.AddressStateAbbr,
new SelectList(
Model.States.OrderBy(s => s.StateAbbr),
"StateAbbr",
"StateName",
Model.AddressStateAbbr), "-- Select State --")
Помощники на основе выражений, похоже, не соблюдают свойство Selected элементов SelectListItems в вашем списке SelectList .