C# 如何确保selectlist项目属于同一SelectListGroup?

C# 如何确保selectlist项目属于同一SelectListGroup?,c#,asp.net-mvc-5,selectlist,optgroup,selectlistitem,C#,Asp.net Mvc 5,Selectlist,Optgroup,Selectlistitem,我正在试验元素,并试图使多个项目属于同一optgroup 我的代码: public async Task<ActionResult> GetStatsView() { var users = await _administrationServiceAPI.GetPersons(); var tanks = await _administrationServiceAPI.GetTanks(); var list = n

我正在试验
元素,并试图使多个项目属于同一optgroup

我的代码:

    public async Task<ActionResult> GetStatsView()
    {
        var users = await _administrationServiceAPI.GetPersons();
        var tanks = await _administrationServiceAPI.GetTanks();


        var list = new List<SelectListItem>();

        foreach (var u in users.Payload)
        {
            SelectListItem item = new SelectListItem {Text = u.Name, Value = u.Id.ToString(), Group = new SelectListGroup {Name = "Users"} };
            list.Add(item);
        }

        foreach (var u in tanks.Payload)
        {
            SelectListItem item = new SelectListItem { Text = u.Name, Value = u.Id.ToString(), Group = new SelectListGroup { Name = "Tanks" } };
            list.Add(item);
        }

        @ViewBag.MyList = list;

        return View("StatsView");
    }
结果:

设计结果为:

用户

用户名

用户名

用户名

坦克

坦克

坦克

坦克


如何执行此操作?

要使其正常工作,您需要重用
SelectListGroup
。就像这样使用它:

    var usersGroup = new SelectListGroup {Name = "Users"};
    foreach (var u in users.Payload)
    {
        SelectListItem item = new SelectListItem {Text = u.Name, Value = u.Id.ToString(), Group = usersGroup };
        list.Add(item);
    }
当然,坦克也是如此


名称是否相同并不重要,在各个项目中使用的实例必须相同才能将它们分组为单个
optgroup

要使其工作,您需要重用
SelectListGroup
。就像这样使用它:

    var usersGroup = new SelectListGroup {Name = "Users"};
    foreach (var u in users.Payload)
    {
        SelectListItem item = new SelectListItem {Text = u.Name, Value = u.Id.ToString(), Group = usersGroup };
        list.Add(item);
    }
当然,坦克也是如此


名称是否相同并不重要,在各个项目中使用的实例必须相同,以便将它们分组为单个
optgroup

,即使是最好的情况。至少你笑了:)即使是最好的也会发生。至少你笑了:)