2012-04-10 143 views
1

我正在學習MVC3,我希望我的下拉列表使用colors作爲數據。我該怎麼做?如何使用此代碼執行@ Html.DropDownListFor?

我知道我可以用@Html.DropDownList("colors")做到這一點,但我想知道如何用@Html.DropDownListFor(....)做到這一點?我有點難住,任何幫助和解釋,將不勝感激。

爲了方便起見,我把它放在一個頁面中,所以這裏不是真實世界的應用程序。

@functions { 

    private class Colors 
    { 
     public int ColorsId { get; set; } 
     public string ColorsName { get; set; } 
    } 

} 

@{ 
    var list = new List<Colors>() 
       { 
        new Colors() {ColorsId = 1, ColorsName = "Red"}, 
        new Colors() {ColorsId = 2, ColorsName = "Blue"}, 
        new Colors() {ColorsId = 3, ColorsName = "White"} 
       }; 
    var colors = new SelectList(list, "ColorsId", "ColorsName", 3); 
} 

@Html.DropDownListFor(???) 
+1

檢查我的回答這個線程。它應該非常相似。 http://stackoverflow.com/questions/5097290/html-listboxfor-error-problem-asp-mvc-3/5176057#5176057 – 2012-04-10 12:30:19

+0

@AllenWang謝謝。絕對是一個很好的答案。提出了一個。 – 2012-04-10 17:15:48

回答

2
@Html.DropDownListFor(model => colors, colors) 
+0

謝謝。這個工作 – 2012-04-10 06:38:09

+0

你能幫我理解'model => colors'中的lambda表達式嗎? – 2012-04-10 06:38:54

+0

該模型是標識包含要顯示的屬性的對象的表達式,並且我們返回用於填充下拉列表的SelectListItems的集合 – ionden 2012-04-10 06:41:58

1

您需要在頁面頂部定義模型類型。使用lambda表達式指定模型的哪個屬性綁定到下拉菜單。

@model MyModel 

@functions { 

    private class Colors 
    { 
     public int ColorsId { get; set; } 
     public string ColorsName { get; set; } 
    } 

} 

@{ 
    var list = new List<Colors>() 
       { 
        new Colors() {ColorsId = 1, ColorsName = "Red"}, 
        new Colors() {ColorsId = 2, ColorsName = "Blue"}, 
        new Colors() {ColorsId = 3, ColorsName = "White"} 
       }; 
    var colors = new SelectList(list, "ColorsId", "ColorsName", 3); 
} 

@Html.DropDownListFor(model => model.colors, colors) 
+0

你能幫我理解'model => model.colors'中的lambda表達式嗎? – 2012-04-10 06:39:14

+0

它告訴'DropDownListFor'綁定到你模型類的'colors'屬性。 – Eranga 2012-04-10 06:42:57

+0

你怎麼知道它看起來ViewPage的Model屬性? (我是一個C#初學者) – 2012-04-10 06:52:50

0
<%= Html.DropDownListFor(x => x.ColorsId, new SelectList(list, "ColorsId", "ColorsName")) %> 
+0

這並沒有工作 – 2012-04-10 06:39:27

+0

對不起沒有正確閱讀它colors.typo的顏色,而不是列表 – 2012-04-10 06:45:11