[英]ASP.NET MVC 2 - How can I get the selected value from a drop down into my view model?
I'm creating a drop down via 我正在通过创建下拉列表
<%= Html.DropDownList("data.Language", Model.LanguageOptions) %>
and want to read back its value through automatic model binding into my LanguageModel viewmodel: 并想通过自动将模型绑定到我的LanguageModel视图模型中来读取其值:
public ActionResult Save(LanguageModel data)
However, data.Language is null when the Save method is called. 但是,调用Save方法时,data.Language为null。
How do I get the selected value from my data.Language dropdown into data.Language? 如何从我的data.Language下拉列表中获取选定的值到data.Language?
get rid of the data. 摆脱数据。
<%= Html.DropDownList("Language", Model.LanguageOptions) %>
Or try: 或尝试:
<%= Html.DropDownListFor(m => m.Language, Model.LanguageOptions) %>
(although m.Langage may not be right - it depends on how your view model is set up) (尽管m.Langage可能不正确-这取决于您如何设置视图模型)
I don't know how your controller action and model look like but this definitely works: 我不知道您的控制器动作和模型是什么样子,但这确实可以工作:
Model: 模型:
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" },
};
}
}
}
Controller: 控制器:
public class HomeController : Controller
{
public ActionResult Index()
{
return View(new LanguageModel());
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(LanguageModel data)
{
return View(data);
}
}
View: 视图:
<% using (Html.BeginForm()) { %>
<%= Html.DropDownList("Language", Model.LanguageOptions) %>
<input type="submit" value="OK" />
<% } %>
<div><%= Html.Encode(Model.Language) %></div>
Of course if you are using ASP.NET MVC 2.0, the strongly typed DropDownListFor
helper is preferable. 当然,如果您使用的是ASP.NET MVC 2.0,则最好使用强类型的
DropDownListFor
帮助器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.