Получить выбранное значение раскрывающегося списка из FormCollection в MVC - PullRequest
9 голосов
/ 09 июня 2010

У меня есть форма для отправки в действие с MVC.Я хочу вытащить выбранный элемент раскрывающегося списка из FormCollection в действии.Как мне это сделать?

Моя HTML-форма:

<% using (Html.BeginForm())
    {%>
    <select name="Content List">
    <% foreach (String name in (ViewData["names"] as IQueryable<String>)) { %>
          <option value="<%= name %>"><%= name%></option>
    <% } %>
    </select>
    <p><input type="submit" value="Save" /></p>
<% } %>

Мое действие:

[HttpPost]
public ActionResult Index(FormCollection collection)
{
    //how do I get the selected drop down list value?
    String name = collection.AllKeys.Single();
    return RedirectToAction("Details", name);
}

1 Ответ

10 голосов
/ 09 июня 2010

Начните с присвоения вашему тегу select действительного name. Допустимое имя не может содержать пробелы.

<select name="contentList">

, а затем получить выбранное значение из коллекции параметров формы:

var value = collection["contentList"];

Или даже лучше: не используйте никакие коллекции, используйте параметр действия, имя которого совпадает с именем вашего выбора, и оставьте связыватель модели по умолчанию заполнять его:

[HttpPost]
public ActionResult Index(string contentList)
{
    // contentList will contain the selected value
    return RedirectToAction("Details", contentList);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...