Heim > Backend-Entwicklung > C++ > Warum wirft meine Dropdown -Liste einen 'System.Int32' vs. 'iEnumerable' -Fehler?

Warum wirft meine Dropdown -Liste einen 'System.Int32' vs. 'iEnumerable' -Fehler?

Susan Sarandon
Freigeben: 2025-02-03 03:06:10
Original
696 Leute haben es durchsucht

Why Does My Dropdown List Throw a

Fehlerbehebung "System.Int32" vs. "iEnumerable" Fehler in Dropdown -Listen

ein Formular mit einer Dropdown -Liste einreichen kann manchmal zu einem Fehler führen, der einen Typ -Fehlanpassung angibt: Das ViewData -Relement erwartet einen IEnumerable -Typ (für die Dropdown -Optionen), erhält jedoch stattdessen eine System.Int32.

Root Ursache: NULL -Kategorieliste

Dies geschieht typischerweise, da die Eigenschaft CategoryList innerhalb Ihres Ansichtsmodells (z. B. ProjectVM) null ist, wenn das Formular eingereicht wird. Der ViewData stützt sich auf diese Eigenschaft, um die Dropdown -Liste zu füllen.

Lösung: Wiederholt die Kategorieliste in der Post -Methode

Die Lösung besteht darin, die Eigenschaft CategoryList in der Post -Aktion -Methode Ihres Controllers ausdrücklich neu zu bevölkern , bevor die Ansicht zurückgibt. Dies stellt sicher IEnumerable Hier erfahren Sie, wie Sie Ihre Post -Methode ändern: ViewData

Hinzufügen dieser Zeile erstellt das

und weist es
public ActionResult Create(ProjectVM model)
{
    if (!ModelState.IsValid)
    {
        // Repopulate the CategoryList
        model.CategoryList = new SelectList(db.Categories, "ID", "Name"); 
        return View(model);
    }
    // ... (Your existing code to save the model and redirect) ...
}
Nach dem Login kopieren
zu. Dies liefert wiederum den erforderlichen

Daten für den SelectList Helfer Ihrer Ansicht. model.CategoryList IEnumerable DropDownListFor() Wie es funktioniert: ViewData und Selektivliste

Die Helper -Methode (und

) versucht, die entsprechenden

-Daten zu finden. Wenn es nicht direkt ein DropDownListFor() erhält, sucht es nach Daten in DropDownList() mit dem Eigenschaftsnamen (wie 'categoryId'). Wenn das SelectList -Relems nicht in SelectList gilt, tritt der Typfehlanpassungsfehler auf. Indem wir ausdrücklich ViewData in der Post -Methode einstellen, umgehen wir dieses Problem. ViewData

Das obige ist der detaillierte Inhalt vonWarum wirft meine Dropdown -Liste einen 'System.Int32' vs. 'iEnumerable' -Fehler?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage