不确定如何从视图模型获取下拉值

时间:2010-09-15 11:07:26

标签: asp.net-mvc-2

我不确定如何从视图中获取所有值。我正在使用名为ApplicationViewModel的强类型视图模型,这里是代码:

public Application Application  { get; private set; }
public SelectList AccountTypes { get; private set; }

public ApplicationViewModel(Application application, IEnumerable<AccountType> accountTypes)
{
   Application = application;
   AccountTypes = new SelectList(accountTypes, "AccountTypeID", "AccountTypeName", application.AccountTypeID);
}

第一次加载表单时,下拉列表会正确填充,并且它会正确验证。这是我的下拉代码:

<%: Html.DropDownListFor(m => m.Application.AccountType, Model.AccountTypes, "-- Select --")%>
<%: Html.ValidationMessageFor(m => m.Application.AccountType) %>

当我单击提交按钮时,我想获取表单上的所有值,包括在下拉列表中选择的值。我不确定我做错了什么。在我的Create操作中,它将Application类的属性设置为文本框的值。但它没有设置AccountType / AccountTypeID。我该如何设置?我的创建行动不正确吗?这是我的创建行动:

[HttpPost]
public ActionResult Create(Application application)
{
}

请有人建议吗?

感谢。

1 个答案:

答案 0 :(得分:1)

这可能是由于视图与绑定器尝试填充的模型之间的命名不匹配。由于(我假设)DropDownList返回所选的帐户类型ID,需要与模型中的属性匹配。

我猜你需要这样的东西:

<%: Html.DropDownListFor(m => m.Application.AccountTypeId, Model.AccountTypes, "-- Select --")%>
<%: Html.ValidationMessageFor(m => m.Application.AccountTypeId) %>

否则,对响应表单值进行degbug并查看所选值保存为的名称。