我试图了解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,因为我没有正确绑定下拉列表但是我不确定我哪里出错了。
有人可以帮我解决我做错的事吗?
答案 0 :(得分:1)
您在视图中使用“ViewBag.BuinessTypes”,
也许你应该在Create Controller中分配一个ViewBag.BuinessTypes的valeu?
像:
public ActionResult Create()
{
ViewBag.BuinessTypes = ...;
return View();
}