Heim >Backend-Entwicklung >C++ >Warum verursacht mein 'CategoryID' ViewData -Element ein 'das ViewData -Element, das den Schlüssel' CategoryId 'enthält. Fehler?
In diesem Artikel wird erläutert, wie der Fehler "Das ViewData -Element für 'CategoryID' in ASP.NET MVC vom Typ 'iEnumerable'" behoben wird. Der Fehler entsteht, weil eine Dropdownlistfor -Helper eine IEnumerable
(typischerweise eine Sammlung von SelectListItem
Objekten) für das Element CategoryID
viewData erwartet, aber stattdessen eine int
erhält. Dies geschieht normalerweise, wenn die Daten für die Dropdown -Liste während einer Postanforderung nicht ordnungsgemäß besiedelt sind.
Das Kernproblem ist, dass die CategoryList
Eigenschaft im ProjectVM
-Ansichtsmodell, die Daten zum Dropdown liefert, nicht in der Post -Methode der Create
-Aktion aktualisiert wird. Die Lösung besteht darin, CategoryList
innerhalb der Postmethode Create
zu bevölkern.
Hier erfahren Sie
Create
<code class="language-csharp">public ActionResult Create(ProjectVM model) { if (!ModelState.IsValid) { // Repopulate the CategoryList property model.CategoryList = new SelectList(db.Categories, "ID", "Name"); return View(model); } // ... (Your existing code to save the project) ... }</code>im
-Block ist der model.CategoryList = new SelectList(db.Categories, "ID", "Name");
korrekt mit Daten aus der Tabelle if (!ModelState.IsValid)
(unter der Annahme CategoryList
ist Ihr Datenbankkontext) und liefert die erforderliche Categories
dem db
für die IEnumerable<SelectListItem>
dem DropDownListFor
dem SelectList
für die
Das obige ist der detaillierte Inhalt vonWarum verursacht mein 'CategoryID' ViewData -Element ein 'das ViewData -Element, das den Schlüssel' CategoryId 'enthält. Fehler?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!