Binding DropDownList in MVC View

8

Lesen von hier: ASP.NET MVC

Aktion SelectCategory wurde im Controller erstellt -

%Vor%

Ich bin nicht in der Lage, die Bindung von Daten in der folgenden Zeile zu verstehen.

%Vor%

Während Daten auf ähnliche Weise gebunden werden,

%Vor%

Ich erhalte folgenden Fehler-

  

Es gibt kein ViewData-Element vom Typ 'IEnumerable'   hat den Schlüssel 'IdList'.

Controller-Aktion :

%Vor%

Was vermisse ich? Danke für Ihre Hilfe!

    
Abhijeet 20.10.2012, 03:46
quelle

3 Antworten

21

Sie haben ViewBag.MovieType = & gt; Wenn Sie @Html.DropDownList("MovieType") verwenden, verwendet das Dropdown diesen Wert. Wenn Sie @Html.DropDownList("IdList") schreiben, findet der Helfer in ViewBag keine entsprechende Eigenschaft IdList und gibt einen Fehler aus, weil er nicht weiß, von wo er die Daten binden soll.

Alternativ können Sie, wenn Sie den Namen des Dropdown-Menüs ändern möchten, Folgendes verwenden:

%Vor%

und Ihre POST-Aktion hat einen SelectedMovieType -Parameter, um den ausgewählten Wert abzurufen.

Aber ich würde ViewBag vermeiden. Das Definieren eines Ansichtsmodells ist besser:

%Vor%

und dann lassen Sie Ihre Controller-Aktion dieses Ansichtsmodell ausfüllen und an die Ansicht übergeben:

%Vor%

und in Ihrer stark typisierten Ansicht:

%Vor%     
Darin Dimitrov 20.10.2012, 07:09
quelle
3

Wenn Sie Ihre Liste an DropDown binden, müssen Sie sie in IEnumerable umwandeln, während Sie das @ Html.DropDown-Steuerelement verwenden, das nicht stark mit Model

typisiert ist

In der Ansicht

%Vor%

und für einen anderen Weg, wenn Sie IdList binden dann

%Vor%     
Shivkumar 20.10.2012 06:35
quelle
0

Ein müheloser Weg für die Datenbindung, um Daten an das Modell zu binden: Verwenden Sie den Rasierer nicht für das Dropdown-Menü. Binden Sie es manuell, holen Sie es mit dem FormCollection-Objekt.

Controller:

%Vor%

Anzeigen

%Vor%     
Suat Atan PhD 27.07.2016 12:02
quelle

Tags und Links