Розкривне меню ASP.NET MVC із порожнім параметром за замовчуванням


Відповіді:


130

Нижче буде додано рядок. Порожній до SelectList (або IEnumerable), зазначеного в пункті ViewData ["Меню"]. Обраний матиме ідентифікатор та ім’я MenuID.

<%= Html.DropDownList( "MenuID",
                      (IEnumerable<SelectListItem>)ViewData["Menu"],
                      string.Empty ) %>

Документація: метод DropDownList


13
Дякую. Назва параметра optionLabel для параметра за замовчуванням мене відкинуло :)
Джеймс Ньютон-Кінг

4
Господи ... я теж, я починав писати власний допоміжний метод ... ім'я сміття IMHO - звучить так, якби він вивів тег <label> поруч.
пан Грок,

Майте на увазі, що клавіша ViewData повинна відрізнятися від DropDown-Id (у цьому прикладі "Menu"! = "MenuID"). В іншому випадку фреймворк перезаписує випадаючий список, ігноруючи третій параметр.
Мануель Алленспах,

Чудово! Виправлена ​​моя проблема з select2.js теж.
gkonuralp

7

Наприклад:

    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"})

Результат:

вбудоване зображення


0

Це просте рішення працювало для мого проекту mvc5:

з огляду:

@{
     Model.ModelItemsList.Add(new ModelItem{ });
     SelectList modelItemSelectList = new SelectList(Model.ModelItemsList, "ModelItemID", "ModelItemName");
}

Просто додайте новий елемент до того, який List<>ви хочете відобразити у своєму поданні. У моєму випадку я додав порожній "ModelItem" до мого List<ModelItem> ModelItemList. Оскільки мій ModelItemID є Guid, мені довелося перевірити Guid.Empty у моєму методі контролера та ввести деякий код. Це все.


-8

Представлене тут рішення дуже добре для мене працювало: http://forums.asp.net/t/1142484.aspx/1

Основна ідея полягає в тому, що ви встановите для AppendDataBoundItemsвластивості вашого DropDownListзначення, trueа потім введете asp:ListItemв DropDownListі, що стане вашим елементом за замовчуванням з усіма елементами прив'язки даних, що йдуть після нього.


4
-1Це для веб-форм ASP.NET, а не для MVC.
JoeBrockhaus
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.