如何阻止选择标记帮助程序自动添加"多个"属性



我在.Net Core VS2017工作

并尝试使用来自模型的数据填充我的下拉列表。为此,我将我的选择列表声明为

<select class="form-control" asp-for="TicketTypes" asp-items="@(new SelectList(Model.TicketTypes,"Id","Name"))"></select>

它正在正确加载数据,但它会自动向其添加多个属性。如何停止此操作,因为我需要在下拉列表中显示它

因此,事实证明,如果 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" })

最新更新