我正在通过
创建一个下拉列表 <%= Html.DropDownList("data.Language", Model.LanguageOptions) %>
并希望通过自动模型绑定将其值读回到我的LanguageModel viewmodel:
public ActionResult Save(LanguageModel data)
但是,调用Save方法时,data.Language为null。
如何从我的data.Language下拉列表中获取所选值。语言?
答案 0 :(得分:0)
摆脱数据。
<%= Html.DropDownList("Language", Model.LanguageOptions) %>
或尝试:
<%= Html.DropDownListFor(m => m.Language, Model.LanguageOptions) %>
(虽然m.Langage可能不对 - 这取决于您的视图模型的设置方式)
答案 1 :(得分:0)
我不知道你的控制器动作和模型是怎样的,但这绝对有效:
型号:
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
帮助程序。