在ASP.NET MVC中正确创建下拉列表

时间:2016-05-15 16:58:14

标签: c# asp.net asp.net-mvc razor asp.net-mvc-5

我试图在使用Razor的ASP.NET MVC中创建一个简单的DropDownListFor,但似乎我不能正确理解它是如何工作的。我使用Entity Framework从数据库中提取数据,在我的Controller方法中它看起来像这样:

using (var entity = new DatabaseEntities())
{
      ViewBag.CityList = entity.city.ToList();
      return View();
}

我正在向另一个表添加值,我的视图如下所示:

<div class="form-group">
     @Html.DropDownListFor(x => x.id_city, new SelectList(@ViewBag.CityList,"id_city","city1"),"Wybierz miasto", new { @class = "form-control" })
</div>

我的模特看起来像:

城市模型

[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Required]
public int id_city { get; set; }
[Required(ErrorMessage = "Podaj prawidlowy kod pocztowy")]
public string postcode { get; set; }
[Required(ErrorMessage = "Podaj prawidlowa nazwe miejscowosci")]
public string city1 { get; set; }
public virtual ICollection<student> student { get; set; }
etc.

学生模型(仅限重要数据,不起作用)

[ForeignKey("city")]
public int id_city { get; set; }
public virtual city city { get; set; }

现在我抛出了ArgumentNullException,告诉我

  

值不能为空。参数名称:System.Web.Mvc中的项目

我只想向City模型添加City数据库中现有行的值。我做错了什么?

1 个答案:

答案 0 :(得分:0)

如果你得到null,那么你应该发送空字符串。可能是解决你的问题。