我在构建自己的应用程序时遵循NerdDinner教程。
教程给出了这个:
public ActionResult Edit(int id) {
Dinner dinner = dinnerRepository.GetDinner(id);
ViewData["Countries"] = new SelectList(PhoneValidator.AllCountries, dinner.Country);
return View(dinner);
}
我的代码是这样的:
public ActionResult Edit(int id)
{
Area area = areaRepository.GetArea(id);
JefeRepository jefe = new JefeRepository();
ViewData["Jefes"] = new SelectList(jefe.FindAllJefes(), area.Jefe.Nombre);
return View(area);
}
FindAllJefes()返回一个IQueryable集合。现在,当我运行应用程序时,dropdownlist会加载两个项目:SeguimientoDocente.Jefe和SeguimientoDocente.Jefe。
似乎它正在加载类型而不是我想要的实际值。\
感谢您的帮助!
编辑:我刚刚意识到这不是一个错误。代码正在完成我告诉它要做的事情。检索每个Jefe名称的最有效方法是什么?
答案 0 :(得分:0)
为SelectList使用另一个构造函数,您可以在其中指定SeguimientoDocente的哪个属性应为值,哪个属性应显示为文本。类似的东西:
ViewData["Jefes"] = new SelectList(jefe.FindAllJefes(), "Id", "Name", area.Jefe.Nombre);