获取一个下拉列表以使用codefirst 4.1 MVC3

问题描述

| 我试图让我了解MVC3的实体框架4.1代码优先方法。 我试图添加一个dropdownlist到创建视图,运气不佳。 我有一个模特看起来像
public class BusinessModel
{
    public int Id { get; set; }

    [required]
    public string BusinessName { get; set; }
    [required]
    public string PhoneNumber { get; set; }


    public int BusinessTypeId { get; set; }
    public virtual BusinessTypeModel BuinessTypeModel { get; set; }

}

public class BusinessTypeModel
{
    public int Id { get; set; }
    public string BusinessType { get; set; }
}
我的下拉列表看起来像
     @Html.DropDownListFor(model => model.BusinessTypeId,((IEnumerable<CRM.Models.BusinessTypeModel>)ViewBag.BuinessTypes)
    .Select(option => new SelectListItem
    {

        Text = (option == null ? \"None\" : option.BusinessType),Value = option.Id.ToString(),Selected = (Model != null) && (option.Id == Model.BusinessTypeId)

    }),\"Select Business Type...\")
我尚未对控制器执行任何操作,因此其香草
 public ActionResult Create()
    {
        return View();
    } 
但是我得到一个错误   值不能为空。   参数名称:来源 现在我假设它为空,因为我没有正确绑定下拉列表,但是我不确定我要去哪里。 有人可以帮我做错什么吗?     

解决方法

        您在视图中使用\“ ViewBag.BuinessTypes \”, 也许您应该在创建控制器中分配一个ViewBag.BuinessTypes值? 喜欢:
 public ActionResult Create()
    {
        ViewBag.BuinessTypes = ...;        
        return View();
    }