在我看来,我有一个用数据库数据填充的 DropDownList。但是当我运行它时,我得到一个我不太明白的错误:
“没有具有键 'DdlBagTypes' 的 'IEnumerable' 类型的 ViewData 项。”
我不知道该怎么做,但我查找了各种解决方案,这就是我的做法:
从数据库中获取数据的函数:
public IEnumerable<SelectListItem> getBagelTypes()
{
return (from t in Db.BagelType.AsEnumerable()
select new SelectListItem
{
Text = t.Name,
Value = t.BagelTypeId.ToString(),
}).AsEnumerable();
}
控制器:
public ActionResult Index()
{
ViewData["LstBagels"] = DbO.getBagels();
TempData["LstTypeOptions"] = DbO.getBagelTypes();
Session["OrderCount"] = OrderCount;
return View();
}
看法:
@model BestelBagels.Models.Bagel
@{
ViewBag.Title = "Home Page";
var LstBagels = ViewData["LstBagels"] as List<BestelBagels.Models.Bagel>;
var LstTypeOptions = TempData["LstTypeOptions"] as IEnumerable<SelectList>;
var OrderCount = Session["OrderCount"];
}
@Html.DropDownList("DdlBagTypes", (SelectList)LstTypeOptions)