【问题标题】:Group in SelectList Not showing in DropDownListSelectList 中的组未显示在 DropDownList 中
【发布时间】:2017-12-18 15:19:56
【问题描述】:

我有一个类,其主要职责是保存创建List<SelectListItem> 对象的方法。这样,如果需要,我可以在多个视图中引用这些方法。

我有一个我认为需要分组的下拉列表,所以我这样做了:

public static List<SelectListItem> lstPersonnel()
{
    var lstPersonnel = new List<SelectListItem>();

    var lstActiveInstructors = db.InstructorSics.Where(x => x.Active).ToList();

    var lstTest = new List<GroupedCFI>();

    foreach (var person in lstActiveInstructors)
    {
        var emp = EmpData.GetEmp(person.InstrucSICIbm);
        GroupedCFI cfi = new GroupedCFI()
        {
            Id = person.Id,
            Name = $"{emp.FirstName} {emp.LastName}",
            WorkLocation = $"{emp.Assignment} {emp.Section}"
        };

        lstTest.Add(cfi);
    }

    var groups = lstTest.GroupBy(x => x.WorkLocation).ToList();

    foreach (var group in groups)
    {
        var slg = new SelectListGroup() {Name = group.Key};

        foreach (GroupedCFI item in group)
        {
            SelectListItem myItem = new SelectListItem() {Text = item.Name, Value = item.Id.ToString(), Group = slg};
            lstPersonnel.Add(myItem);
        }
    }

    return lstPersonnel;
}

在我的控制器中,我有这个:

ViewBag.InstrucSelect = new SelectList(SelectListMethods.lstPersonnel(), "Value", "Text", "Group", null, null);

在我看来:

@Html.DropDownListFor(model => model.InstrucSICId, (IEnumerable<SelectListItem>)ViewBag.InstrucSelect, "-- Select --", new { @class = "form-control" })

当我运行它时,我看到下拉列表中的所有名称,但分组只是System.Web.Mvc.SelectListGroup。为什么 Value 和 Text 值有效但分组无效?

【问题讨论】:

    标签: c# asp.net-mvc selectlist selectlistitem


    【解决方案1】:

    我已经想通了。出于某种原因,如果我尝试在新的 SelectList 对象中调用该方法,就像我正在做的那样,那么分组将不起作用。

    但我将控制器中的行从:

    ViewBag.InstrucSelect = new SelectList(SelectListMethods.lstPersonnel(), "Value", "Text", "Group", null, null);
    

    收件人:

    ViewBag.InstrucSelect = SelectListMethods.lstPersonnel();
    

    现在它可以工作了。即使这是答案中的问题(用问题回答问题),为什么在新的 SelectList 对象中将方法作为 IEnumerable 重载调用时,Grouping 不起作用,但 Value 和 Text 值起作用?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-21
      相关资源
      最近更新 更多