Чи є спосіб включити порожній параметр за замовчуванням (або з текстом), якщо для випадаючого списку немає вибраного значення?
Чи є спосіб включити порожній параметр за замовчуванням (або з текстом), якщо для випадаючого списку немає вибраного значення?
Відповіді:
Нижче буде додано рядок. Порожній до SelectList (або IEnumerable), зазначеного в пункті ViewData ["Меню"]. Обраний матиме ідентифікатор та ім’я MenuID
.
<%= Html.DropDownList( "MenuID",
(IEnumerable<SelectListItem>)ViewData["Menu"],
string.Empty ) %>
Документація: метод DropDownList
Наприклад:
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"})
Результат:
Це просте рішення працювало для мого проекту mvc5:
з огляду:
@{
Model.ModelItemsList.Add(new ModelItem{ });
SelectList modelItemSelectList = new SelectList(Model.ModelItemsList, "ModelItemID", "ModelItemName");
}
Просто додайте новий елемент до того, який List<>
ви хочете відобразити у своєму поданні. У моєму випадку я додав порожній "ModelItem" до мого List<ModelItem> ModelItemList
. Оскільки мій ModelItemID є Guid, мені довелося перевірити Guid.Empty у моєму методі контролера та ввести деякий код. Це все.
Представлене тут рішення дуже добре для мене працювало: http://forums.asp.net/t/1142484.aspx/1
Основна ідея полягає в тому, що ви встановите для AppendDataBoundItems
властивості вашого DropDownList
значення, true
а потім введете asp:ListItem
в DropDownList
і, що стане вашим елементом за замовчуванням з усіма елементами прив'язки даних, що йдуть після нього.
-1
Це для веб-форм ASP.NET, а не для MVC.