【问题标题】:Asp.net MVC how to populate dropdown list with numbersAsp.net MVC 如何用数字填充下拉列表
【发布时间】:2015-06-21 23:39:14
【问题描述】:
我见过类似的例子,人们需要填充对象列表,但我想要实现的只是在我的 DropdownlistFor 中使用数字 1-10。有没有一种简单的方法可以做到这一点。以下是我所拥有的。
<div class="form-group">
@Html.LabelFor(model => model.NumberOfTickets, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(model => model.NumberOfTickets)
@Html.ValidationMessageFor(model => model.NumberOfTickets)
</div>
</div>
【问题讨论】:
标签:
c#
asp.net-mvc
model-view-controller
html.dropdownlistfor
【解决方案1】:
你可以使用类似下面的东西:
@Html.DropDownListFor(m => m.NumberOfTickets, Enumerable.Range(1, 10).Select(i => new SelectListItem { Text = i.ToString(), Value = i.ToString() }))
所有这一切都是创建一个 1 到 10 之间的整数的可枚举,然后使用一些 LINQ 将其转换为 Html.DropDownListFor 可以接受的 IEnumerable<SelectListItem>。
【解决方案2】:
从当前年份到 n 年前的年份列表。
int startYear = 1980
@Html.DropDownListFor(m => m.DateofEstablishment, Enumerable.Range(0, (DateTime.Now.Year - startYear -1)).Select(i => new SelectListItem { Text = (DateTime.Now.Year - i).ToString(), Value = i.ToString() }), "Please select year", new { @class = "form-control", @required = "required" })
【解决方案3】:
对于较新版本的 ASP Mvc 或 Asp Core,您可以使用以下内容:
<input type="number" asp-for="NumberOfTickets" class="form-control" placeholder="Number of Tickets" min="1" max="10" />
完整的代码是:
<div class="form-group">
@Html.LabelFor(model => model.NumberOfTickets, new { @class = "control-label col-md-2" })
<div class="col-md-10">
<input type="number" asp-for="NumberOfTickets" class="form-control" placeholder="Number of Tickets" min="1" max="10" />
@Html.ValidationMessageFor(model => model.NumberOfTickets)
</div>
这是我用来将 int 值绑定到模型的方法。 DropDownListFor 需要一个 IEnumerable 您不需要简单的数字下拉列表。