我正在使用MVC4和EF Code First,我在使用DropDownList更新模型类型的外键时遇到问题。
以下是我的模特:
public class Customer
{
public int CustomerID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class Party
{
public int PartyID { get; set; }
public virtual Customer Host { get; set; }
public string Location { get; set; }
public DateTime Date { get; set; }
}
因此,某个缔约方的Host
是Customer
在/Party/Create
GET方法的控制器中,我在ViewBag中传递了一个客户列表:
ViewBag.Customers = new SelectList(db.Customers, "CustomerID", "FirstName");
然后在视图中我将其渲染为DropDownList:
@Html.DropDownListFor(model => model.Host, ViewBag.Customers as SelectList, String.Empty)
一切正常,我可以从下拉列表中的客户列表中进行选择。但是,当我提交表单时,/ Party / Create POST方法不会插入数据,因为ModelState
无效。查看ModelState
,我可以看到所选客户的CustomerID
存在,但无法从字符串转换为Customer
类型的对象
我错过了什么?
答案 0 :(得分:2)
尝试将DropDownList绑定到CustomerID
的{{1}}属性:
Host