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

Я создаю раскрывающийся список с помощью

<%= Html.DropDownList("data.Language", Model.LanguageOptions) %>

и хотите прочитать его значение с помощью автоматической привязки модели в моей модели представления LanguageModel:

public ActionResult Save(LanguageModel data)

Однако data.Language имеет значение null, когда вызывается метод Save.

Как получить выбранное значение из моих данных. Выпадающий язык в data.Language?

Ответы [ 2 ]

0 голосов
/ 28 мая 2010

Я не знаю, как выглядит действие и модель вашего контроллера, но это определенно работает:

Модель:

public class LanguageModel
{
    public string Language { get; set; }
    public IEnumerable<SelectListItem> LanguageOptions
    {
        get
        {
            return new[] 
            {
                new SelectListItem { Value = "en", Text = "English" },
                new SelectListItem { Value = "fr", Text = "French" },
            };
        }
    }
}

Контроллер:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View(new LanguageModel());
    }

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Index(LanguageModel data)
    {
        return View(data);
    }
}

Вид:

<% using (Html.BeginForm()) { %>
    <%= Html.DropDownList("Language", Model.LanguageOptions) %>
    <input type="submit" value="OK" />
<% } %>

<div><%= Html.Encode(Model.Language) %></div>

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

0 голосов
/ 28 мая 2010

избавиться от данных.

<%= Html.DropDownList("Language", Model.LanguageOptions) %>

Или попробуйте:

<%= Html.DropDownListFor(m => m.Language, Model.LanguageOptions) %>

(хотя m.Langage может быть неправильным - это зависит от того, как настроена ваша модель представления)

...