ViewBag.Years = new SelectList(Enumerable.Range(1910, DateTime.Today.Year - 1910 + 1).Select(x =>
new SelectListItem()
{
Text = x.ToString(),
Value = x.ToString()
}), "Value", "Text");
我使用这个语法来显示1910年的下拉菜单。但我需要第一个值为空白,因为它是可选的下拉菜单。如何实现,任何帮助将是感激的
编辑:cshtml页面上的渲染器
<div class="col-@screenSize-4">
@Html.Label("Select Year")
@Html.DropDownListFor(model => model.EventYear, (IEnumerable<SelectListItem>)ViewBag.Years, new { @class = "form-control select-control", @data_placeholder = "Select one" })
</div>
创建列表,然后在0位置插入你需要的项目。这样一来,它就是页面加载时显示的第一个项目。
List<SelectListItem> list = Enumerable.Range(1910, DateTime.Today.Year - 1910 + 1)
.Select(x => new SelectListItem()
{
Text = x.ToString(),
Value = x.ToString()
}).ToList();
list.Insert(0, new SelectListItem{ Text = "(Select a year)", Value = "-1" });
ViewBag.Years = list;
请注意分配给提示项的特殊值,让你了解是否选择了一些有效的年份。