我不确定如何从视图中获取所有值。我正在使用名为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)
{
}
请有人建议吗?
感谢。
答案 0 :(得分:1)
这可能是由于视图与绑定器尝试填充的模型之间的命名不匹配。由于(我假设)DropDownList返回所选的帐户类型ID,需要与模型中的属性匹配。
我猜你需要这样的东西:
<%: Html.DropDownListFor(m => m.Application.AccountTypeId, Model.AccountTypes, "-- Select --")%>
<%: Html.ValidationMessageFor(m => m.Application.AccountTypeId) %>
否则,对响应表单值进行degbug并查看所选值保存为的名称。