Select 带有分组元素的标签助手

Select Tag Helper with grouping elements

ASP.NET MVC Core 中的 Select tag helper 是否有如下所示的分组选项。我使用的是 ASP.NET Core 和 VS2015 的最新版本:

<select>
  <optgroup label="Swedish Cars">
    <option value="volvo">Volvo</option>
    <option value="saab">Saab</option>
  </optgroup>
  <optgroup label="German Cars">
    <option value="mercedes">Mercedes</option>
    <option value="audi">Audi</option>
  </optgroup>
</select>

显示:

select 标签助手有一个 items 参数,您可以在其中传递 IEnumerable<SelectListItem>SelectListItem 有一个 属性,Group,这是 SelectListGroup 的一个实例。换句话说,这实际上是关于如何设置 SelectListItem 列表。标签助手应该生成 optgroups 如果你定义了它们。

是的。 SELECT 标签助手可以为选项呈现选项组。您所要做的就是在创建新的 SelectListItem 对象时提供 Group 属性 值。

var swedish = new SelectListGroup { Name="Swedish" };
var german = new SelectListGroup { Name="German" };

var optionItems = new List<SelectListItem>
{
  new SelectListItem { Value="vovlo", Text = "Volvo", Group = swedish },
  new SelectListItem { Value="saab", Text="Saab", Group = swedish },
  new SelectListItem { Value="mercedes", Text="Mercedes", Group = german } ,
  new SelectListItem { Value="audi", Text ="Audi", Group = german } 
}; 
// use optionItems for asp-items when using SELECT tag helper