获取下拉列表以首先使用代码4.1 MVC3

时间:2011-05-28 03:05:30

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

我试图了解MVC3的实体框架4.1 codefirst方法。

我正在尝试将一个下拉列表添加到创建视图中而运气不佳。

我的模型看起来像

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();
    } 

但是我得到一个空错误

  

值不能为空。   参数名称:source

现在我假设这是null,因为我没有正确绑定下拉列表但是我不确定我哪里出错了。

有人可以帮我解决我做错的事吗?

1 个答案:

答案 0 :(得分:1)

您在视图中使用“ViewBag.BuinessTypes”,

也许你应该在Create Controller中分配一个ViewBag.BuinessTypes的valeu?

像:

 public ActionResult Create()
    {
        ViewBag.BuinessTypes = ...;        
        return View();
    }