只是想知道是否有人可以帮助解决这个问题。我有一个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;
}
答案 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();