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

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

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

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

Ответы [ 2 ]

4 голосов
/ 25 января 2009

Если у вас есть таблица типов продуктов с описанием и значением (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, убедитесь, что у вас есть бета-версия, прежде чем попробовать это.

1 голос
/ 13 октября 2008

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

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...