我在 MVC3 中填充下拉列表时遇到了一点问题。我希望有人在这方面给我帮助。
我正在尝试呈现包含城市 DropDownList 的用户视图。这应该从数据库中获取。事实上,User 类有一个 City 类的 ForeignKey。
这是控制器和视图:
public ViewResult Index()
{
//return View(model);
var DefaultCities = new[]
{
new {Name = "London"}
}.ToList();
IEnumerable<SelectListItem> cities = unitOfWork.CityRepository.Get() as IEnumerable<SelectListItem>;
ViewData["AllCities"] = cities != null ? new SelectList(cities.AsEnumerable(), "CityID", "Name") : new SelectList(DefaultCities.AsEnumerable(), "Name");
return View(unitOfWork.UserRepository.Get(orderBy: us => us.OrderByDescending(u => u.ID)).OfType<User>().ToList());
}
//风景
<div class="editor-field">
@Html.DropDownList(**"CityID"**, ViewData["AllCities"] as SelectList, "--Choose One--"))
@Html.ValidationMessageFor(model => model.CityID)
</div>
但显示以下错误:
没有具有键“CityID”的“IEnumerable”类型的 ViewData 项。
这是我第一次接触 MVC!“CityID”指的是什么?我应该写什么作为 的第一个参数@Html.DropDownList
?
正如我在不同文章中所读到的,提到的参数应该是表单字段的名称。
任何人都可以建议一个示例代码吗?任何帮助,将不胜感激。