Asp.net MVC 如何用数字填充下拉列表
Asp.net MVC how to populate dropdown list with numbers
我见过类似的例子,人们需要用一个对象列表来填充,但我想要实现的是在我看来我的 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>
您可以使用如下内容:
@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>
。
从当年到 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" })
对于 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,对于简单的数字下拉列表,您不需要它。
我见过类似的例子,人们需要用一个对象列表来填充,但我想要实现的是在我看来我的 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>
您可以使用如下内容:
@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>
。
从当年到 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" })
对于 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