【问题标题】:Need to add another entry (--Select--) dynamically to DropDownList in my views需要在我的视图中动态添加另一个条目(--Select--)到 DropDownList
【发布时间】:2016-08-28 06:35:16
【问题描述】:

我正在为我的视图中的下拉列表分配值,如下所示。

@Html.DropDownList("Sites", new SelectList(Model.SiteList.Select(x => new { Value = x.SiteId, Text = x.SiteName }), "Value", "Text"))

如何添加另一个名为 '--Select--' 的列表项

【问题讨论】:

  • 你的意思是optionLabel?您可以将选项标签字符串作为第三个参数传递。
  • 您可以将代码简化为new SelectList(Model.SiteList, "SiteId", "SiteName ") - 首先创建匿名有点毫无意义
  • 非常感谢 Mike 和 Stephen。我得到了解决方案。我正在使用下面的代码并且它工作正常。 @Html.DropDownList("Sites", new SelectList(Model.SiteList, "SiteId", "SiteName"),"--Select--")

标签: c# asp.net asp.net-mvc razor asp.net-mvc-5


【解决方案1】:
@{
  var values = Model.SiteList.Select(x => new SelectListItem() { Value = x.SiteId, Text = x.SiteName }).ToList();
  values.Add(new SelectListItem() { Text = "--Select--" });
}

@Html.DropDownList("Sites", new SelectList(values, "Value", "Text"))

【讨论】:

  • 使用new SelectList() 从第一个创建第二个相同的IEnumerable<SelectListItem> 有点毫无意义。
【解决方案2】:

您可以简单地将其添加为最后一个参数:

@Html.DropDownList("Sites", 
        new SelectList(Model.SiteList.Select(x => 
             new { Value = x.SiteId, Text = x.SiteName }), "Value", "Text"), "--Select--");

Working Fiddle

【讨论】:

  • 谢谢哥们。下面的代码看起来很简单。 @Html.DropDownList("Sites", new SelectList(Model.SiteList, "SiteId", "SiteName"),"--Select--")
猜你喜欢
  • 2019-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多