私の見解では、データベース データを入力する 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)