2012-02-09 7 views
1

強く型付けされたビューデータにListコレクションがあります。リストを使用するドロップダウンリストのMVCヘルパ<Cars>

どのようにHtml.DropDownListヘルパーを使用しますか?

<%= Html.DropDownList(ViewData.Model.Cars) %> 

(上記動作しない、シグネチャのいずれかと一致していないよう)

これはMVC2あります。

+0

私のDDLチュートリアルを参照してください。http://www.asp.net/mvc/tutorials/javascript/working-with-the-dropdownlist-box-and-jquery/using-the-dropdownlist-helper-with-aspnet-mvc http://blogs.msdn.com/b/rickandy/archive/2012/01/09/cascasding-dropdownlist-in-asp-net-mvc.aspx – RickAndMSFT

答えて

6

あなたCarクラスがこの

public class Car 
{ 
    public int Id { get; set; } 

    public string Name { get; set; } 
} 

のようなものを見て、あなたはこの

public int CarId { get; set; } 

のようなあなたのビューモデルのプロパティを置けばあなたの結果のビューモデルがこの

public class YourViewModel 
{ 
    public int CarId { get; set; } 

    public List<Car> Cars { get; set; } 
} 
ようになります。

これは可能です

this.Html.DropDownListFor(x => x.CarId, new SelectList(this.Model.Cars, "Id", "Name")) 

CarIdは、ビューモデルがActionのパラメータであった場合、デフォルトのモデルバインダーによってバインドされます。

+0

CarIdはドロップダウンリストをあらかじめ選択していますか? – codecompleting

+0

@codecompletingはい。そのため、ビューモデルのそのプロパティを、選択したい車のIDに設定します。また、MVCでは、フォームデータをビューモデルにバインドするために、デフォルトのモデルバインダー(これに対して何もしなくてもかまいません)を使用できます。あなたのビューモデルの1つをパラメータとして受け入れる 'Action'にフォームをPOSTする場合、' CarId'プロパティはデフォルトのモデルバインダによって自動的に設定されます。 – Craig

+0

+1クレイグ、多かれ少なかれ私はこれに答えていただろう –

関連する問題