2012-05-01 11 views
0

私はこのDropDownListForを()トラブルを抱えていますが選択された値がDropDownListFor(での使用モデル)

私はテストコントローラを持っている場合は逃しましたそれは常に最初の値を選択します。

どうしたのですか?私は、DropDownListコントロール

@Html.DropDownList("COUNTRYNAME" , (SelectList)ViewBag.Selecter) 

を使用する場合は

また、動作しません。

しかし、私は

@Html.DropDownListFor("AAAAAAA" , (SelectList)ViewBag.Selecter) 

を使用する場合は正常に動作し、第二値を選択します!何が起こるのですか?わかりません。

model.COUNTRYNAME = "Swizeland"; 
ViewBag.Selecter = new[] 
{ 
    new SelectListItem { Text = "USA", Value = "USA" }, 
    new SelectListItem { Text = "Swizeland", Value = "Swizeland" }, 
    new SelectListItem { Text = "Russia", Value = "Russia" }, 
}; 
return View(model); 

とビューで:

おかげ

+0

"スイス"ではなく "スイスランド"。 –

+0

申し訳ありません...ありがとう... – Oleg

答えて

0

は次のように試してみてください

@Html.DropDownListFor(
    x => x.COUNTRYNAME, 
    (IEnumerable<SelectListItem>)ViewBag.Selecter 
) 

が、より良い方法は、ビューモデルを使用することです:

model.SelectedCountry = "Swizeland"; 
model.Countries = new[] 
{ 
    new SelectListItem { Text = "USA", Value = "USA" }, 
    new SelectListItem { Text = "Swizeland", Value = "Swizeland" }, 
    new SelectListItem { Text = "Russia", Value = "Russia" }, 
}; 
return View(model); 

ビュー:

@Html.DropDownListFor(x => x.SelectedCountry, Model.Countries) 
+0

これは動作します。私はそれをテストしました。それがあなたのために働かないなら、これはあなたが他のコードを持っていることを意味します。この場合、問題の再現を可能にする完全な例(コントローラ、アクション、ビュー)を提供してください。 –

+0

多くの方に助けていただきありがとうございます。私は第1のケースを試しましたが、動作しません。しかし、私は "モデル"を使用しようとし、それは動作します!それは非常に奇妙です。エンティティを「モデル」で使用することはできませんか?私は強制的にエンティティをアダプタに戻して戻しましたか? – Oleg

+0

または何か問題がありますか? – Oleg

関連する問題