2017-08-01 83 views
1

我在.Net Core VS2017如何从自动添加“多”属性

工作,并试图填充我从模型数据下拉菜单中选择停止标签帮手。为此我宣布我的选择列表为

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

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

回答

1

因此,事实证明,如果在asp-for属性中指定的属性是IEnumerable,则选择标记助手将自动生成多选。

public IEnumerable<Models.TicketTypeList> TicketTypes { get; set; } 

因此,我改变的代码和所存储的数据在ViewBagSelectList通过改变控制器的代码

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" })