Подтвердить что ты не робот

Вывод ASP.NET MVC с пустым вариантом по умолчанию

Есть ли способ включить пустую опцию по умолчанию (или с текстом), если для выпадающего списка нет выбранного значения?

4b9b3361

Ответ 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, и это станет вашим элементом по умолчанию со всеми деталями данных, которые появятся после он.