MVC:从SelectList更新FK关系

时间:2012-09-21 09:31:44

标签: asp.net-mvc entity-framework ef-code-first

我正在使用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; }
}

因此,某个缔约方的HostCustomer

/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类型的对象

我错过了什么?

1 个答案:

答案 0 :(得分:2)

尝试将DropDownList绑定到CustomerID的{​​{1}}属性:

Host