Asp.net-Mvc-4
MVC 4 DropDownListFor 錯誤 - 沒有具有鍵的“IEnumerable<SelectListItem>”類型的 ViewData 項
我有一個模型:
public class Auction { public string Title { get; set; } public string category { get; set; } }和一個控制器:
[HttpGet] public ActionResult UserForm() { var categoryList = new SelectList(new[] { "auto", "elec", "games", "Home" }); ViewBag.categoryList = categoryList; return View(); }在視圖中,我有以下幾行:
<div class="editor-field"> @Html.DropDownListFor(model => model.category,(SelectList)ViewBag.categoryList) @Html.ValidationMessageFor(model => model.category) </div>我嘗試保存表單時遇到的錯誤是:
沒有具有鍵“類別”的“IEnumerable”類型的 ViewData 項。說明:執行目前 Web 請求期間發生未處理的異常。請查看堆棧跟踪以獲取有關錯誤及其源自程式碼的位置的更多資訊。
異常詳細資訊:System.InvalidOperationException:沒有具有鍵“類別”的“IEnumerable”類型的 ViewData 項。
我不明白問題出在哪裡,因為我做了(或試圖做)本指南中所做的一切: https ://www.youtube.com/watch?v=7HM6kDBj0vE
該影片也可以在此連結中找到(第 6 章 - 自動綁定到請求中的數據): http://www.lynda.com/ASPNET-tutorials/ASPNET-MVC-4-Essential-Training/109762-2。 html
當我嘗試保存表單時出現的錯誤
這就是你的問題所在。我懷疑你沒有在你的 post 方法中重建你的列表。您在 get 方法中擁有的以下程式碼行也應該在您的 post 方法中,尤其是當您返回相同的視圖或
ViewBag.categoryList在下拉列表中使用的視圖時。var categoryList = new SelectList(new[] { "auto", "elec", "games", "Home" }); ViewBag.categoryList = categoryList;
null當您使用帶有 html 幫助器的下拉列表的對象時,您會遇到這種錯誤。如果您執行類似的操作,則可以輕鬆重現該錯誤@Html.DropDownListFor(model => model.PropertyName,null) // or @Html.DropDownList("dropdownX", null, "")