2013-04-30 9 views
9

In MVC3 habe ich diesen Code an meinem Controller. Es ruft eine Liste von IDs \ Namen aus der Installationstabelle ab und erstellt eine ViewBagEinstellung eines voreingestellten Wertes in DropDownList in MVC3

Jetzt aus meiner Sicht. Ich möchte die Liste in einer Dropdown-Liste darstellen. Früher habe ich den Html-Helfer, der gut funktioniert ...

@Html.DropDownList("InstId",(SelectList)ViewBag.Vessels, "- Select one -") 

ich erstes Element in der ViewBag Liste als Standard ausgewählt Werte, statt einstellen muß „- Wählen Sie ein -“ Text.

Wie kann ich es tun?

Vielen Dank im Voraus!

Antwort

19

Es gibt eine Überladung für den Konstruktor SelectList, der 4 Argumente benötigt. Die letzte davon ist das standardmäßig ausgewählte Objekt. Z. B:

ViewBag.Vessels = new SelectList(vs, "InstId", "InstName", selectedValue); 

Wo selectedValue ein Objekt von welcher Art auch immer in der Liste ist.

+0

Dank @WheretheresaWill. OH MEIN GOTT! Ich habe diese Überlastung nicht bemerkt. Ich Idiot. – equisde

+0

Keine Sorgen! – WheretheresaWill

+0

danke, es hat mir geholfen .... – shanish

0

Sie können auch eine Hilfsklasse für Dropdownliste erstellen Sie eine Methode, den Text als durch Standardtext für jede Dropdownlist in Ihnen Lösung

+0

Danke @ K2_Ketu aber als WhertheresaWill sagte, es gibt eine Überlastung, die diese Option enthält. – equisde

4

ich erstes Element in der ViewBag Liste setzen muß festlegen, wie ein Standardwert ausgewählt Wert, anstatt "- Wählen Sie einen -" Text.

Dann müssen Sie den ersten Eintrag in der Liste wählen (vs) und bekommt es id ist und es als selecedValue im Select verwenden:

ViewBag.Vessels = new SelectList(vs, "InstId", "InstName", 
    vs.FirstOrDefault().InstId); 
+0

Danke! Es funktioniert auch – equisde

+0

Gern geschehen. –

Verwandte Themen