2010-12-24 6 views
0

Ich habe ein Formular in asp.net mvc, die Datensätze aus der Datenbank abruft. Diese Form hat Drop-Downs. In Edit Action des Controllers muss es die bereits eingefügten Elemente ausgewählt haben. Angenommen, ich nehme die Benutzerinformationen zur Bearbeitung, dann müssen Stadt, Bundesland und Land so ausgewählt werden, wie sie zuvor eingefügt wurden.Wie man den vorhandenen Wert als Dropdown-Menü in asp.net setzt mvc dropdown

Also habe ich versucht, in Edit:

int CityId_ = objAM.GetCityName(User.CityId); 
         ViewData["Cites"] = new SelectList(City.GetAllCities(), "CityId", CityName", CityId_); 

gleiche wie Land und Staat. aber obwohl CityId_ Wert hat, aber es scheint nicht so. Es ist Standard von der ersten Stadt (gleich für alle) warum das denn?

Ich bin gerade durch diese blog gegangen, wo ich gefunden habe, sollte der zuweisende dritte Parametername in der Eigenschaft des Objekts sein. aber lassen Sie mich sagen, ich habe primäre und Fk-Beziehung, aber Spalten Name sind unterschiedlich, dann scheint es, MVC stark gekoppelten Feature fehlschlagen. Warum das ist?

+0

Ist das ein Fehler in asp.net MVC? –

Antwort

0

Ich habe das gleiche Problem und das ist, was ich getan habe, um meine Dropdown-Liste zu erhalten, um den richtigen Wert in der Dropdown-Liste beim Bearbeiten eines Datensatzes auszuwählen.

Team team = _db.TeamSet.First(m => m.TeamID == id); 
ViewData["FantasyYear"] = new SelectList(fanYear, "YearID", "FantasyYear", team.FanYearReference.EntityKey.EntityKeyValues[0].Value); 

Dies war der einzige Weg, wie ich sah, dass dies getan werden konnte. Sie müssen den Entitätsschlüssel und die Schlüsselwerte der referenzierten Tabelle übergeben. Da ich bei MVC ganz neu bin, kann ich diese Codezeile nicht so gut aufschlüsseln. fanYear ist der IEnumerable-Eintrag. YearID ist der Wert (Schlüsselspalte in der referenzierten Tabelle) der Dropdown-Liste, "FantasyYear" ist der Anzeigetext der Dropdown-Liste. Team ist der Tisch, den ich gerade bearbeite. Ich glaube, dass ich einen Hinweis auf den FanYear-Tisch aufstelle und den Fantasy-Jahresschlüssel des Teams erhalte. Es sagt ihm den Schlüsselwert des Jahres. Ich bin mir nicht sicher, warum [0] benötigt wird.

Hoffe, das hilft.

Verwandte Themen