Czy istnieje sposób na dołączenie domyślnej pustej opcji (lub z tekstem), jeśli nie ma wybranej wartości na liście rozwijanej?
asp.net-mvc
html.dropdownlistfor
html-select
James Newton-King
źródło
źródło
Na przykład:
Controller : private void InitScreenInfoCollate() { IEnumerable<MstBrd> listbrd = ibrandRepository.GetItemsByUsercode(""); ViewBag.Brands = new SelectList(listbrd, "brd_cod", "brd_mei", null); } View : @Html.DropDownList("Brands", null, string.Empty, new { @class = "form-control"})
Wynik:
źródło
To proste rozwiązanie zadziałało w moim projekcie mvc5:
z uwagi:
@{ Model.ModelItemsList.Add(new ModelItem{ }); SelectList modelItemSelectList = new SelectList(Model.ModelItemsList, "ModelItemID", "ModelItemName"); }
Po prostu dodaj nowy element do tego,
List<>
który chcesz wyświetlić w swoim widoku. W moim przypadku dodałem pusty „ModelItem” do mojegoList<ModelItem> ModelItemList
. Ponieważ mój ModelItemID jest Guid, musiałem sprawdzić Guid.Empty w mojej metodzie kontrolera i zrobić kod. To wszystko.źródło
Przedstawione tutaj rozwiązanie działało u mnie bardzo dobrze: http://forums.asp.net/t/1142484.aspx/1
Podstawowa idea polega na tym, że ustawiasz
AppendDataBoundItems
właściwość swojego elementuDropDownList
to,true
a następnie umieszczaszasp:ListItem
wDropDownList
nim znak, który stanie się elementem domyślnym, a po nim pojawią się wszystkie elementy związane z danymi.źródło
-1
Dotyczy to formularzy sieci Web ASP.NET, a nie MVC.