2013-04-30 13 views
9

W MVC3 Mam ten kod na moim kontrolerze. Wyszukuje listę identyfikatorów \ Nazwy z tabeli Instalacja i tworzy widok ViewBag Teraz, według mojego widoku. Chcę wyświetlić listę na liście rozwijanej. Użyłem pomocnika HTML, który działa dobrze ...Ustawianie domyślnej wybranej wartości w DropDownList w MVC3

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

muszę ustawić pierwszy element na liście ViewBag jako domyślną wybrano wartości, zamiast „- Wybierz jedno -” tekst.

Jak mogę to zrobić?

Z góry dziękuję!

Odpowiedz

19

Istnieje przeciążenie dla konstruktora SelectList, który pobiera 4 argumenty. Ostatnim z nich jest domyślny wybrany obiekt. Np:

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

Gdzie selectedValue jest przedmiotem jakiegokolwiek typu znajduje się na liście.

+0

Thanks @WheretheresaWill. O MÓJ BOŻE! Nie zdawałem sobie sprawy z tego przeciążenia. Głupi ja. – equisde

+0

Bez obaw! – WheretheresaWill

+0

dziękuję, pomógł mi .... – shanish

0

Można również utworzyć klasę pomocniczą dla DropdownList będzie miał sposób, aby ustawić tekst jako domyślnie tekst dla każdego dropdownlist w was rozwiązanie

+0

Dzięki @ K2_Ketu, ale jak Wheretheresa Powiedział, że istnieje przeciążenie, które obejmuje tę opcję. – equisde

4

muszę ustawić pierwszy element na liście ViewBag jako domyślną wybraną wartością jest zamiast "- Wybierz jeden -" tekst.

Następnie trzeba wybrać pierwszą pozycję na liście (vs) i dostać to id i użyć go jako selecedValue w selectList:

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

Dzięki! Działa również – equisde

+0

Nie ma za co. –

Powiązane problemy