ASP.NET MVC: как результат моих действий находит выбранную запись в выпадающем списке? - PullRequest
1 голос
/ 30 ноября 2009

У меня есть выпадающий список, который я заполняю некоторыми вещами:

В моем контроллере

ViewData["SourceModelList"] = new SelectList(_modelService.GetAllModels(), "Id", "Description");

на мой взгляд

<% using (Html.BeginForm("Compare", "Home")) {  %>
    <p>
        <%=Html.DropDownList("SourceModelList")%>
    </p>
    <p>            
        <input type="submit" value="Compare" />
    </p>
<% } %>

И это прекрасно. Теперь, когда я вернусь к своему действию «сравнить», как узнать, какой элемент был выбран в раскрывающемся списке?

Ответы [ 3 ]

1 голос
/ 30 ноября 2009

Вы можете использовать любой из обычных методов для получения элементов из формы в ASP.NET MVC: FormCollection, объект Request, привязка к конкретной модели или действие, которое принимает параметр string SourceModelList.

1 голос
/ 01 декабря 2009

Вы можете сделать:

int value = Convert.ToInt32(Request.Form["SourceModelList"]);

Или ModelBinders, просто убедившись, что ваша модель имеет свойство

public int SourceModelList {get; set;}

И ModelBinder получит его для вас.

Или, но менее вероятно:

public ActionResult Name(FormCollection f, int SourceModelList)
1 голос
/ 30 ноября 2009

Имя «SourceModelList» должно соответствовать имени поля в вашей ViewModel, чтобы связыватель мог что-то связать со значением раскрывающегося списка.

Кроме того, вы можете извлечь значение из объекта FormCollection, если ваше представление не является строго типизированным.

Учебное пособие NerdDinner более подробно описывает этот процесс:

NerdDinner Шаг 5: Создание, обновление, удаление сценариев форм http://nerddinnerbook.s3.amazonaws.com/Part5.htm

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