2013-05-17 3 views
9

я нашел много вопросов и ответов, связанных с этим вопросом, но ничего не работает для меняВыбранное значение не работает SelectList

Я создаю выпадающий список, как этот

@Html.DropDownListFor(m => m.SchoolYears, new SelectList(Model.SchoolYears, "YearId", "StartDates", Model.CurrentYearId), new { @class = "field_Dropdown", style = "width:100px;",onchange="return searchStudents();" }) 

(Model.CurrentYearId имеет тип int)

Но он никогда не позволяет выбранному году.

С этого поста, я получил, что мы должны использовать строку для выбранного значения (хотя я не знаю, почему, потому что это позволяет объект для выбранного значения)

DropDownList SelectList SelectedValue issue

поэтому я попытался все эти варианты

new SelectList(Model.SchoolYears, "YearId", "StartDates", Model.CurrentYearId.ToString()) 

new SelectList(Model.SchoolYears, "YearId", "StartDates", 2) 

new SelectList(Model.SchoolYears, "YearId", "StartDates", "2") 

Но они даже не работали.

Существует способ создать список выбора через запрос linq или цикл foreach и отметить выбранное свойство каждого элемента, но почему это не работает?

ответ

21

Обнаружена проблема.

Ошибку я делал это с помощью этого

m => m.SchoolYears // m.SchoolYears in a list of string 

Когда я изменил его на этом

m => m.SelectedYearId // m.SelectedYearId is an integer property 

он работал как шарм, так что в конце концов я эту работу

Спасибо!

+4

вещь не работает для меня sfor по какой-либо причине .. –

+0

Что делать, если мне нужен идентификатор строки? – Zapnologica

+1

Я использую MVC5, но все же имею ту же проблему –

0

Решение не сработало для меня. Оказывается, выбранное свойство не работает, если имя свойства ViewBag и имя свойства модели одинаковы, поэтому после изменения имени свойства ViewBag оно сработало.

Смежные вопросы