2013-04-07 64 views
0

只是想知道是否有人可以幫助解決這個問題。我有一個viewmodel填充下拉列表。我只是想知道是否可以在下面更改我的代碼,以便我可以使用for循環來填充列表。使用for循環查看模型填充列表

視圖模型

public IEnumerable<SelectListItem> numberOfAdults { get; set; } 

控制器

numberOfAdults = new[] 
       { 
        new SelectListItem {Value = "1", Text = "1"}, 
        new SelectListItem {Value = "2", Text = "2"}, 
        new SelectListItem {Value = "3", Text = "3"}, 
        new SelectListItem {Value = "4", Text = "4"}, 
        new SelectListItem {Value = "5", Text = "5"}, 
        new SelectListItem {Value = "6", Text = "6"}, 
        new SelectListItem {Value = "7", Text = "7"}, 
        new SelectListItem {Value = "8", Text = "8"}, 
        new SelectListItem {Value = "9", Text = "9"}, 
        new SelectListItem {Value = "10", Text = "10"} 
       } 

查看

@Html.DropDownListFor(x => x.selectedAdultValue, new SelectList(Model.numberOfAdults, "Value", "Text"), null, new {@id="NumerOfAdults" }) 

像下面是我想什麼,但不知道在哪裏把它放在模型或控制器。

for(int i = 0; i < 10; i++) 
{ 
    i; 
} 

回答

3

這可能是這麼簡單:

numberOfAdults = Enumerable.Range(1, 10).Select(x => new SelectListItem 
{ 
    Value = x.ToString(), 
    Text = x.ToString() 
}); 

,或者如果你真的想用一個for循環(我不明白爲什麼你想要的,但無論如何):

var result = new List<SelectListItem>(); 
for(int i = 1; i <= 10; i++) 
{ 
    result.Add(new SelectListItem { 
     Value = x.ToString(), 
     Text = x.ToString() 
    }); 
} 
numberOfAdults = result.ToArray(); 
+0

嗨達林,謝謝作品一種款待 – CareerChange 2013-04-07 17:49:13

+1

不能標記爲答案8分鐘 – CareerChange 2013-04-07 17:49:40

+0

嗨達林,我打算用於循環的原因是因爲我不知道你可以使用Enumerable.Range像y我們的例子 – CareerChange 2013-04-07 17:57:51