繁体   English   中英

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

[英]Populating a dropdown list using a for loop in razor

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

我正在尝试这样做

@{
      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我的DropDownList错误? 是否有可能以这种方式填充?还是应该在控制器中进行填充?

不要这样 保持您的观点尽可能良性。 使用您的视图模型和控制器,这就是它们的用途。 但是出于好奇,这是一种方法:

@{ 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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM