2012-02-09 43 views
1

我在強類型viewdata中有一個列表集合。使用列表的下拉列表的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 2012-02-10 19:02:19

回答

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")) 

當發佈時,如果視圖模型是Action的參數,則CarId會被綁定到默認模型聯編程序的邊界。

+0

CarId是預先選擇下拉列表? – codecompleting 2012-02-09 20:46:25

+0

@codecompleting是的。因此,您將視圖模型上的該屬性設置爲要選擇的汽車的ID。此外,在MVC中,您可以使用默認模型聯編程序(您不必爲此執行任何操作)將表單數據綁定到視圖模型。如果您要將表單傳遞給一個將Action視爲參數的'Action',那麼'CarId'屬性將被默認的模型綁定器自動設置。 – Craig 2012-02-09 20:52:17

+0

+1克雷格,或多或少正是我如何回答這個問題 – 2012-02-10 08:10:46