Die Razor-syntax zu zeigen, ein drop-down-Liste in asp.net mvc
Ich habe in meinem view-Modell eine durch Kommas getrennte Zeichenfolge:
vm.colours = "black, white, blue, green"
In meinem Rasiermesser Seite möchte ich zeigen eine drop-down-Liste, also ich habe:
@Html.DropDownList(m => m.colours, new SelectList(Model.colours))
Jedoch das gibt mir eine select-Liste Punkt für jeden BUCHSTABEN im string.
Gibt es eine Möglichkeit kann ich ändern, um mir eine select-list-Element für jede Farbe?
Danke,
Mark
Du musst angemeldet sein, um einen Kommentar abzugeben.
Im moment senden Sie einfach eine Zeichenfolge ein, die nur ein array von Zeichen, so daß in diesem Zusammenhang ist es als solche interpretiert. Verwenden
Split
Methode für die Trennung der Elemente, die Sie wollen.Edit:
Überprüfen diese Antwort für code-Beispiel für die Verwendung
Split
in diesem Fall.Keine überlastung der
DropDownList
akzeptiert einen Ausdruck. Dieser code funktioniert, müssen Sie es so machen:Oder meinst du das vielleicht verwenden
DropDownListFor
, wenn ja, dann benötigen Sie zwei Dinge:Ihrer Ansicht sollte wie folgt Aussehen:
Müssen Sie etwas ähnliches in Ihrem controller:
Und schließlich in Ihre Ansicht:
Gut, es sieht aus wie die Farben nicht eine
IEnumerable<string>
aber nur einstring
. Als dieSelectList
auflisten über das Objekt übergeben, das bedeutet in diesem Fall eine enumeration über eine Zeichenfolge, die gibt alle Zeichen. Bitte versuchen Sie es mit einem string-array:vm.colours = new string[] { "black", "white", "blue", "green" };
Den Aufruf
Html.DropDownList
bleibt die gleiche.