我在.Net Core VS2017
并尝试使用模型中的数据填充我的下拉列表。为此,我将选择列表声明为
<select class="form-control" asp-for="TicketTypes" asp-items="@(new SelectList(Model.TicketTypes,"Id","Name"))"></select>
正在正确加载数据,但它会自动添加多个属性。如何阻止这一点因为我需要在下拉列表中显示它
答案 0 :(得分:5)
因此,如果asp-for属性中指定的属性是IEnumerable,则选择标记帮助器将自动生成多选。
public IEnumerable<Models.TicketTypeList> TicketTypes { get; set; }
所以我更改了代码并将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");
然后在视图中将代码更改为
@Html.DropDownList("TicketTypes",ViewBag.ticketTypeList as SelectList, new { @class = "form-control" })