Как я могу объявить раскрывающийся список в представлении, чтобы установить значение для модели в ASP.NET MVC?

Я хотел бы объявить раскрывающийся список в представлении в приложении ASP.NET MVC, чтобы пользователь мог выбрать значение поиска. Я знаю, как объявлять простые текстовые поля, но есть ли официальный помощник для объявления раскрывающихся списков (выборщики даты и времени и все остальное)?

Я также не знаю, какую структуру я должен передать своему представлению, чтобы указать значения в раскрывающемся списке. Я предполагаю, что мне нужен как идентификатор, так и описание.

Наконец, как мне передать выбранный идентификатор из раскрывающегося списка обратно в мое действие в контроллере?


person Petros    schedule 13.10.2008    source источник
comment
Рассмотрите возможность изменения заголовка поля со списком на раскрывающийся список. Поле со списком — это раскрывающийся список, который включает текстовое поле для ввода нового элемента. Люди, которые хотят реализовать поле со списком в MVC, здесь ошибаются. См. en.wikipedia.org/wiki/Combo_box.   -  person RickAndMSFT    schedule 11.10.2011


Ответы (2)


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

//Lets assume you retrieve your product types somehow here
ViewData["ProductTypes"] =  new List<ProductType>();

Затем внутри вашего представления введите следующее

<%= Html.DropDownList("productType",
    new SelectList((IEnumerable)ViewData["ProductTypes"],
    "TypeID", "Description"))%>

TypeID и Description относятся к свойствам вашего объекта типа ProductType.

Кроме того, вы можете не найти Html.DropDownList, если у вас установлена ​​более старая версия MVC, убедитесь, что у вас есть версия Beta+, прежде чем пробовать это.

person Konstantinos    schedule 24.01.2009

Вы можете проверить эту запись в блоге Скотта Гатри о Обработка сценариев публикации редактирования формы. Он использует выпадающий список в своем примере.

Вы также можете указать список сложных объектов в раскрывающемся списке (пример Скотта Гатри не показывает этого, но намекает на это).

Вы можете сделать что-то вроде этого...

<%= Html.DropDownList("Select One", "CategoryId", ViewData.Model.Categories, "Id", "Name", ViewData.Model.SelectedCategoryId)) %>

«Идентификатор» и «Имя» относятся к свойствам в вашем списке объектов ViewData.Model.Categories.

Если SelectedCategoryId имеет значение, то по умолчанию будет выпадающий список.

person Elijah Manor    schedule 13.10.2008
comment
Я попытался сделать то, что вы предложили. Проблема в том, что я не могу найти DropDownList. В статье говорится, что я должен включить некоторую библиотеку MVC, которую я не могу найти на своем диске. Вы случайно не знаете, где я могу его найти? - person Petros; 16.10.2008