2013-05-17 8 views
9

ich viele Fragen und Antworten im Zusammenhang mit diesem Problem, aber nichts funktionierte für michgewählter Wert arbeitet nicht für Select

Ich erstelle eine Dropdown-Liste wie diese

@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 ist vom Typ int) gefunden

Aber es lässt nie aktuellen Jahr ausgewählt.

Von diesem Beitrag habe ich, dass wir für ausgewählten Wert verwenden String sollten (obwohl ich warum nicht wissen, weil es Objekt für ausgewählten Wert erlaubt)

DropDownList SelectList SelectedValue issue

so all diese Variationen hat ich versucht

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

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

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

Aber sie haben sogar nicht funktioniert.

Es gibt eine Möglichkeit, die Auswahlliste über linq query oder foreach loop zu erstellen und die ausgewählte Eigenschaft jedes Elements zu markieren, aber warum funktioniert das nicht?

Antwort

21

Das Problem gefunden.

Der Fehler, den ich tat, wird mit diesem

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

Als ich es auf diese

geändert
m => m.SelectedYearId // m.SelectedYearId is an integer property 

es wie ein Zauber gearbeitet, so endlich habe ich diese Arbeit

Danke!

+4

Ding funktioniert nicht für mich aus irgendeinem Grund .. –

+0

Was mache ich, wenn ich eine Zeichenfolge ID brauche? – Zapnologica

+1

Ich benutze MVC5 aber immer noch das gleiche Problem –

0

Die Lösung hat nicht für mich funktioniert. Es stellt sich heraus, dass die ausgewählte Eigenschaft nicht funktioniert, wenn der Name der ViewBag-Eigenschaft und der Name der Modelleigenschaft identisch sind, sodass nach dem Ändern des Namens der ViewBag-Eigenschaft die Funktion funktioniert.

Verwandte Themen