2013-12-16 4 views
-1

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

Например, рейтинги будут представлять собой сбор текста/значения, который будет иметь произвольное количество значений.

@rating(1).Text @Html.DropDownList("rating(1)", ratingList, "") 
    @rating(2).Text @Html.DropDownList("rating(2)", ratingList, "") 
    ... 
    @rating(10).Text @Html.DropDownList("rating(10)", ratingList, "") 

Возможно, что идентификационные номера рейтинга не будут смежными. Я хотел бы иметь метод контроллера, который бы возвращал это в коллекции, например, в словаре. Как я могу это сделать?

+0

Как Вы обычно определяли свою коллекцию? '@rating (1)' недействительный синтаксис, поэтому я предполагаю, что вы имеете в виду что-то в строках '@rating [N]', где 'rating' будет списком * something *. Это то, что вам нужно выложить. –

+0

Мой рейтинговый объект предназначен только для коллекции идентификатора и описания. Каждый раскрывающийся список имеет этот идентификатор, связанный с ним, который должен быть привязан к значению, выбранному в этом раскрывающемся списке. – Rono

ответ

4

Вы можете взглянуть на Model Binding to a List.

И потом:

@rating[0].Text @Html.DropDownList("rating[0]", ratingList, "") 
@rating[1].Text @Html.DropDownList("rating[1]", ratingList, "") 
... 
@rating[9].Text @Html.DropDownList("rating[9]", ratingList, "") 

И ваше действие контроллера может принимать параметр string[] rating, который будет содержать выбранные значения.

Смежные вопросы