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