c# - 在 razor 中使用 for 循环填充下拉列表
问题描述
我知道这不是最好的做法,但我很好奇你将如何在 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
错误?甚至可以以这种方式填充,还是我应该在控制器中进行填充?
解决方案
不要这样做。尽可能保持您的观点温和。使用您的视图模型和控制器,这就是它们的用途。但出于好奇,这里有一种方法:
@{ 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>
推荐阅读
- javascript - Webpack 不会从另一个文件内联 const
- apache-spark - 如何在批处理持续时间内收到的数据被处理之前停止火花流?
- c# - 无法使用 POST 方法在 C# (asmx) 中创建 Web 服务并输入 FormData
- python - 为什么这个神经网络的准确率为零,损失极低?
- oracle - 我需要一个用于在 oracle 中舍入登录的通用函数,并且在插入需要舍入的字段时需要调用此函数
- node.js - 纱线更新后 npm 构建失败
- javascript - 无法使用 Cheerio js 节点从 div 标签中抓取文本?
- try-with-resources - CachedRowSet 总是返回空
- ios - 如何通过丰富的通知操作将数据发布到 Firestore?
- java - 用于重试注释的 Bean 后处理器