我正在尝试在下拉列表中创建分组,如下所示:
新媒体
--Category 1
--Category 2
技术员
- 类别3
--Category 4
我找到了这个旧的MVC -DropDownList - Categories - SubCategories,但是在此之前它被包含在MVC中。然后我遇到了这个HTML “optgroup” support in DropDownList 。因此,通过这两个链接,我将代码修改为如下所示:
ViewBag.CategoryId = new SelectList(db.Categories.Where(c => c.Status == 1).OrderBy(c => c.CategoryName), "CategoryId", "CategoryName", "RoleId", 3);
问题是它从该表中显示Guid,而不是我需要的RoleDescription字段。我尝试将“RoleId”修改为“Role”,因为这是我的虚拟类在模型中的引用(引用Role类)。如何更改此权限,以便它提取正确的角色名称?
答案 0 :(得分:1)
dataGroupField
既可用作分组字段,也可用作显示内容。由于您传入了RoleId,因此它按此字段进行分组并显示每个组的RoleId。
您需要对其进行更改,以便将RoleDescription字段作为第三个参数传递。
ViewBag.CategoryId = new SelectList(db.Categories.Where(c => c.Status == 1)
.OrderBy(c => c.CategoryName), "CategoryId", "CategoryName", "Role.RoleDescription ", 3);
根据您当前正在进行的查询,我觉得您需要从db.Categories
引用导航属性或进行加入才能获得RoleDescription