Создать подкатегории в выпадающем списке MVC

Я пытаюсь создать группы в моем выпадающем списке, как показано ниже:

Новые средства массовой информации
- Категория 1
- Категория 2
техник
- Категория 3
- Категория 4

Я нашел этот старый MVC -DropDownList - Categories - SubCategories, но это было до того, как он был включен в MVC. Затем я наткнулся на эту поддержку HTML "optgroup" в 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). Как мне изменить это, чтобы оно вытягивало правильное имя роли?

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

Другие вопросы по тегам