Ich weiß, dass dies schon einige Male zuvor gefragt wurde, aber die vorhandenen Lösungen sehen eher wie Hacks aus als ein richtiges Muster.Möglicher Fehler in Html.DropDownList, ausgewählte Werte nicht widerspiegelnd?
Ich habe eine einfache Dropdown-Liste. Ich versuche, es mit Daten zu füllen und einen Artikel ausgewählt zu haben. Ich bin erfolgreich bei der "Befüllung mit Datenteil", aber es ist mir nicht gelungen, meinen bevorzugten Artikel vorausgewählt zu bekommen.
Ich benutze ASP.NET MVC 3 RC2.
Die wichtigen Codebits:
{
// Bunch of code
CategoryOptions = new SelectList(categories, "Id", "Slug", article.Category.Id);
}
Nun ... die CategoryOptions auf die Html-Helfer wie so übergeben wird:
@Html.DropDownListFor(a => a.Category, Model.CategoryOptions)
ich bei den Werten ausgesehen haben, die in die Helfer übergeben und haben bestätigt, dass für eines der Elemente der ausgewählte Wert auf "true" gesetzt ist:
Es spiegelt jedoch nicht in dem HTML wider, das vom Helfer erzeugt wird. Keines der Tags ... hat das Attribut selected = "selected".
Ich verwendete Reflektor den Code ein wenig, und diese Linie (SelectExtensions.SelectInternal) sieht dicey zu untersuchen:
item.Selected = (item.Value != null) ? set.Contains(item.Value) : set.Contains(item.Text);
Bin ich hier etwas falsch? Oder ist das Framework (ASP.NET MVC 3 RC2) hier schuld.
Danke für die Antwort ... Ich habe auch die Antwort gepostet, die ich Minuten nach dem Posten der Frage gefunden habe. Hoffe das hilft dir auch. – kidoman