2012-01-22 5 views
1

私はこのコードを使用して、ドロップダウンリストを移入しています(とそれが正常に動作しますが):DropDownListForリストからアイテムを選択する方法は? (MVC3)

@Html.DropDownListFor(x => x.SelectedCountry, new SelectList(Model.Countries, "Value", "Text"), "Please Select a Country") 

時には、このビューには、事前に選択した国のデータを取得するので、私はそれを選択したいです国。

私が試した:

@Html.DropDownListFor(x => x.SelectedCountry, new SelectList(Model.Countries, "Value", "Text", "United States"), "Please Select a Country") 

をしかし、これは動作しませんでした。私はまた、アイテムの価値を試して、運がありません。

私は間違っていますか?

また、作成後にその要素にアクセス/変更する方法はありますか? (C#はJavaScriptを使用していません)

ありがとう!

+1

これをチェックしましたか? http://stackoverflow.com/questions/781987/how-can-i-get-this-asp-net-mvc-selectlist-to-work –

+0

私はそこに明確な答えを見つけることができません、特定の場所?可能であれば、私はむしろこれのための機能を避けるでしょう。 – Michael

+0

モデルに選択されたアイテムの値が含まれている場合は機能しますが、機能します。 時: x.SelectedCountry にはデータ(値でテキストではなく)があります。 (以前と同じコードで) – Michael

答えて

3

Model.Countriesリストには、TextValueという2つのプロパティがあります。

@Html.DropDownListFor(
    x => x.SelectedCountry, 
    new SelectList(Model.Countries, "Value", "Text", "us"), 
    "Please Select a Country" 
) 

Model.CountriesにあなたがValue="us"でアイテムを持っていることを前提としています。あなたがドロップダウンに与えられた項目を事前に選択したい場合は、値を使用する必要がありますので。ビューを返すコントローラのアクション内でこれを行うことが代替案として

public ActionResult Foo() 
{ 
    var model = new MyViewModel(); 
    model.Countries = new[] 
    { 
     new SelectListItem { Value = "fr", Text = "France" }, 
     new SelectListItem { Value = "uk", Text = "United Kingdom" }, 
     new SelectListItem { Value = "us", Text = "United States" }, 
    }; 
    model.SelectedCountry = "us"; 
    return View(model); 
} 

、あなたは単に可能性ビューで:Value="us"を持つ要素を事前に選択します

@Html.DropDownListFor(
    x => x.SelectedCountry, 
    Model.Countries, 
    "Please Select a Country" 
) 

(私の例では3番目)。

関連する問題