使用剃刀中的for循环填充下拉列表

时间:2018-05-17 20:49:07

标签: c# asp.net-mvc razor

我知道这不是最好的做法,但我很好奇你如何使用剃须刀中的dropdownlist循环填充for

我试图这样做

@{
      int year = DateTime.Now.Year;

      @Html.DropDownListFor(model => model.ResolutionYear, new List<SelectListItem>
      {
          for (var i = 0; i < 10; i++)
          {
              if (year - i == year)
              {
                  new SelectListItem() { Text = (year - i).ToString(), Value = (year - i).ToString(), Selected = true };
              }
              else
              {
                  new SelectListItem() { Text = (year - i).ToString(), Value = (year - i).ToString() };
              }
          }
        })
}

它似乎不喜欢我这样做的方式,因为它不停地对我大喊} expected我拥有每个开放式括号的所有关闭括号。也许我填充了我的DropDownList错误?是否有可能以这种方式填充或者我应该在控制器中进行填充?

1 个答案:

答案 0 :(得分:2)

不要这样做。保持您的意见尽可能良好。使用您的视图模型和控制器,这就是他们的用途。但出于好奇,这是一种方式:

@{ var year = DateTime.Now.Year; }
<select>
@for (var i = year; (i > year - 10); i--)
{
    if (i == (year - 3))
    {
        <option value="@i" selected>@i</option>
    }
    else
    {
        <option value="@i">@i</option>
    }
}
</select>