2010-12-24 10 views
0

私はデータベースからレコードを取得するasp.net mvcのフォームを持っています。このフォームにはドロップダウンがあります。コントローラーの編集アクションでは、既に挿入されている項目を選択する必要があります。私が編集のためにユーザー情報を取っている場合、前に挿入した都市、州、国を選択する必要があります。asp.net mvcドロップダウンでドロップダウンに選択された既存の値を設定する方法

だから私は編集で試してみました:

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

同じような国と州。 CityId_には価値がありますが、そのようには見えません。最初の都市からのデフォルト(すべての場合と同じ)理由は?

私はちょうどこのblogを見つけました。割り当てられた3番目のパラメータ名は、オブジェクトのプロパティにある必要があります。しかし、私はプライマリとFkの関係を持っていると言うが、列の名前は、MVC強く結合された機能が失敗したようだ異なっている。これはなぜですか?

+0

これはasp.net MVCのバグですか? –

答えて

0

私は同じ問題を経験しました。これは、レコードを編集するときに、ドロップダウンリストで正しい値を選択するドロップダウンリストを取得するために行ったことです。

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

これが私がこれを行うことができる唯一の方法でした。参照テーブルのエンティティキーとキー値を渡す必要があります。私はMVCで全く新しいので、私はこのコード行をあまりにも細かく分解することはできません。 fanYearはIEnumerable項目です。 YearIDはドロップダウンリストの値(参照先テーブルのキー列)、 "FantasyYear"はドロップダウンリストの表示テキストです。チームは私が編集しているテーブルです。私はFanYearテーブルへの参照を設定し、チームのファンタジー年のキーを取得していると思います。それは年の重要な価値を伝えています。なぜ[0]が必要なのか分かりません。

これが役に立ちます。

関連する問題