Как я могу реализовать DropDownListFor для строки List‹Dictionary‹, List‹Rights›››

У меня есть два словаря Dictionary<string, List<Rights>> и список этих словарей List<Dictionary<string, List<Rights>>>.

Теперь я хочу иметь DropDownListFor для имен этих словарей.

Например, у меня есть словарь для хранения PersonModel (name) и списка их Rights, а также словарь для хранения Groups (name) и список их Rights.

public Dictionary<string, List<Rights>> PersonsWithRights { get; set; }

[Display(Name = "Groups")]
public Dictionary<string, List<Rights>> GroupsWithRights { get; set; }

[Display(Name = "--")]
public List<Dictionary<string, List<Rights>>> ObjectsWithRights { get; set; }

Вид:

@Html.DropDownListFor(m => Model.ObjectsWithRights.FirstOrDefault(), new SelectList(@Model.ObjectsWithRights))

Цель состоит в том, чтобы иметь раскрывающийся список с «Люди» и «Группы», а из этого раскрывающегося списка «матрицу прав доступа», где вы можете изменять права.

Вот небольшой «макет» для людей: введите здесь описание изображения

Вот небольшой макет для групп: введите здесь описание изображения


person David Walser    schedule 23.07.2018    source источник
comment
Вам нужен только один раскрывающийся список для людей и групп, верно?   -  person ahmet    schedule 23.07.2018
comment
@ahmet да, но из выбранного я хочу создать матрицу   -  person David Walser    schedule 23.07.2018
comment
Я не понимаю необходимости матрицы. Один раскрывающийся список; Я выбираю человека или группу. Затем он показывает мне список прав. Где будет матрица?   -  person ahmet    schedule 23.07.2018
comment
@ahmet Я добавил картинку в свой пост для объяснения   -  person David Walser    schedule 23.07.2018
comment
Тогда зачем нужен выпадающий список? Имена и группы перечислены вертикально, а права — горизонтально. Нет необходимости в раскрывающемся списке. Если вы скажете мне, что существует много людей и групп, я спрошу: зачем указывать более одного человека или группу? Тогда нет необходимости в списке по вертикали.   -  person ahmet    schedule 23.07.2018
comment
Какова цель выпадающего списка? Вы хотите изменить список имен (или групп) в столбце LHS на основе выбранной опции? (и, как примечание, использование словарей для ваших данных - наихудший возможный выбор, и вы никогда не получите надлежащую двустороннюю привязку модели - используйте модель представления, которая представляет ваше представление)   -  person    schedule 24.07.2018
comment
@StephenMuecke да, я думаю, вы меня правильно поняли, но как мне этого добиться? Как лучше? Спасибо за ваш отзыв   -  person David Walser    schedule 24.07.2018
comment
См. Как представить месяц флажков в модели MVC для примера того, как ваши модели представления и код представления будут выглядеть для правильной двусторонней привязки модели   -  person    schedule 24.07.2018
comment
@StephenMuecke, но как лучше хранить PersonModels и их права? (права разные для каждого стола)   -  person David Walser    schedule 24.07.2018
comment
Хотя до сих пор не ясно, для чего предназначен раскрывающийся список (я предполагаю, что вы хотите изменить значения в столбце LHS либо на список имен, либо на список групп? - в этом случае, почему бы просто не отображать таблицы в представление, в противном случае есть 2 отдельных представления для редактирования разрешений имени и разрешений группы)   -  person    schedule 24.07.2018
comment
@StephenMuecke, ваши предложения верны, я добавил еще одну картинку к своему вопросу. Что вы имеете в виду под отображением таблиц в представлении?   -  person David Walser    schedule 24.07.2018
comment
Давайте продолжим это обсуждение в чате.   -  person    schedule 24.07.2018