DropDownListFor zeigt/behält keinen Nullwert für die erste Auswahl in der Liste an
-
12-11-2019 - |
Frage
Ich habe eine MVC-App über SharpArch.In der Ansicht habe ich:
Html.DropDownListFor(x => x.Location,
new SelectList(Model.PossibleLocations, "Id", "Address"),
"-- No Location --")
Ich habe zwei Probleme.
- Das Dropdown wird nicht aktualisiert, wenn die Ansicht an das Modell gebunden wird.
- Eine Auswahl wird korrekt beibehalten, außer wenn ich oben „Kein Standort“ ausprobiere.
Ich konnte mich um den ersten Punkt kümmern, indem ich x.Location in x.Location.Id änderte, aber dann hatte ich andere Probleme.
Ich kann viele Beispiele für DropDownList finden, aber keines, in dem das Speichern einer Null angezeigt wird.
Jede Hilfe wird geschätzt.
Danke
AKTUALISIEREN:
Ich habe gerade Resharper aktualisiert (ein kleines Update) und werde aufgefordert, DropDownListFor auszufüllen.Warum sollte das einen Unterschied machen?Es hat ausreichend funktioniert, um es zu binden, und jetzt funktioniert es überhaupt nicht mehr.
Lösung
Sie können jederzeit das „leere“ einfügen SelectListItem
in dein PossibleLocations
Sammlung vor Weitergabe an die View
und prüfen Sie, ob dieser „leere“ Wert (z. B. 0) vorhanden ist, wenn das Formular veröffentlicht wird
model.PossibleLocations.Insert(0,
new SelectListItem() { Text = "-- No Location --", Value = "0" };
Andere Tipps
Versuchen Sie, Ihre Modellklasse "abflachen", sodass StandortID der tatsächliche Wert ist, an dem Sie bindend sind