0

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

1 回答 1

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();
于 2013-04-07T17:45:08.803 回答