我在工作 .Net Core VS2017
并尝试使用模型中的数据填充我的下拉菜单。为此,我宣布我的选择列表为
<select class="form-control" asp-for="TicketTypes" asp-items="@(new SelectList(Model.TicketTypes,"Id","Name"))"></select>
Run Code Online (Sandbox Code Playgroud)
它可以正确加载数据,但会自动向其中添加multiple属性。如何停止此操作,因为我需要在下拉菜单中显示此内容
因此事实证明,如果在asp-for属性中指定的属性是IEnumerable,则选择标记帮助器将自动生成多选。
public IEnumerable<Models.TicketTypeList> TicketTypes { get; set; }
Run Code Online (Sandbox Code Playgroud)
所以我更改了代码并将数据存储在其中,ViewBag方法SelectList是将控制器中的代码更改为
var ticketTypes = _context
.TicketType
.Where(w => w.Deleted == false)
.Select(s => new {
id = s.Id,
Name = s.Name
}).OrderBy(o=>o.Name).ToList();
ViewBag.ticketTypeList = new SelectList(ticketTypes, "id", "Name");
Run Code Online (Sandbox Code Playgroud)
然后在视图中将代码更改为
@Html.DropDownList("TicketTypes",ViewBag.ticketTypeList as SelectList, new { @class = "form-control" })
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
477 次 |
| 最近记录: |