Asp.net mvc 4 ASP.NET MVC 4 Razor视图:如何向SelectListItem的文本和值属性添加循环控制变量

Asp.net mvc 4 ASP.NET MVC 4 Razor视图:如何向SelectListItem的文本和值属性添加循环控制变量,asp.net-mvc-4,razor,Asp.net Mvc 4,Razor,例如,以下是我的代码: @{ List<SelectListItem> listItems = new List<SelectListItem>(); for (int i = 1; i <= 5; i++) { listItems.Add(new SelectListItem { Text = "i", Value = "i" } );

例如,以下是我的代码:

@{
    List<SelectListItem> listItems = new List<SelectListItem>();
    for (int i = 1; i <= 5; i++) {
        listItems.Add(new SelectListItem
        {
            Text = "i",
            Value = "i"
        }
        );
    }
}

@Html.DropDownListFor(model => model.Level, listItems, "-- Select --")
@Html.ValidationMessageFor(model => model.Level)
@{
List listItems=新列表();
对于(int i=1;i model.Level,listItems,“--Select-->”)
@Html.ValidationMessageFor(model=>model.Level)
这就是我想做的。我想在每次迭代中用循环控制变量填充下拉列表,即对于I=1,
Text
Value
将是“1”;对于I=2,
Text
Value
将是“2”,依此类推

如何在Razor中实现这一点

每当我尝试上述代码时,只有“I”显示5次,但我希望显示1到5

ASP.NET MVC 4,实体框架5

List<SelectListItem> listItems = new List<SelectListItem>();
for (int i = 1; i <= 5; i++) {
    listItems.Add(new SelectListItem
    {
        Text = i.ToString(),
        Value = i.ToString()
    });
}

但无论如何,此代码属于控制器,而不是视图(并将其分配给(最好)视图模型属性或
ViewBag
属性。

Text=i.ToString(),Value=i.ToString()
(无引号),但可以简化为
var listItems=new SelectList(可枚举的.Range(1,5));
@StephenMuecke是的,我尝试了Text=I.ToString()和Value=I.ToString(),它对我有效。我会尝试第二个,然后让你知道。:@StephenMuecke成功了!!!!!谢谢。)
SelectList listItems = new SelectList(Enumerable.Range(1, 5));