我试图在使用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数据库中现有行的值。我做错了什么?
答案 0 :(得分:0)
如果你得到null,那么你应该发送空字符串。可能是解决你的问题。