使用for循环viewmodel填充列表

时间:2013-04-07 17:43:03

标签: c#-4.0 asp.net-mvc-4

只是想知道是否有人可以帮助解决这个问题。我有一个viewmodel填充下拉列表。我只是想知道是否可以更改下面的代码,以便我可以使用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;
}

1 个答案:

答案 0 :(得分:4)

可能很简单:

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();