c# - 如何阻止选择标签助手自动添加 'multiple' 属性

标签 c# .net-core

我在 .Net Core VS2017 中工作

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

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

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

最佳答案

所以事实证明,如果 asp-for 属性中指定的属性是 IEnumerable,则选择标签帮助器将自动生成多选。

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

所以我通过将 Controller 中的代码更改为 SelectList 来更改代码并将数据存储在 ViewBag

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

然后在 View 中将代码更改为

@Html.DropDownList("TicketTypes",ViewBag.ticketTypeList as SelectList, new { @class = "form-control" })

关于c# - 如何阻止选择标签助手自动添加 'multiple' 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45427891/

相关文章:

c# - 从文本文件读取会创建三个点

c# - 如何处理来自 SQL Server 的 DBNull DateTime 字段?

c# - ConcurrentDictionary + Lazy——实例化只会发生一次吗?

c# - 如何在类库中添加配置文件,然后是 .NET Core 1.1 的连接字符串

c# - 如何按需运行后台服务 - 而不是在应用程序启动或计时器上

c# - 对我的应用程序需要与之通信的每个主机使用一个HttpClient实例是否可以?

c# - 为什么不支持 Convert.ToDouble(char)?

C# ||运算符不使用可为空的 boolean 值

c# - 正则表达式验证器: Should not allow single zero

.net-core - 如何从.netcore中的 token 中删除“http ://schemas. xmlsoap.org/ws/2005/05/identity/urls