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

Nou*_*tti 4 c# .net-core

我在工作 .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属性。如何停止此操作,因为我需要在下拉菜单中显示此内容

Nou*_*tti 5

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