Как динамически добавлять пункты меню на главную страницу в приложении ASP.NET 3.5 MVC - PullRequest
1 голос
/ 23 октября 2008

Я хочу динамически добавлять элементы меню на мою главную страницу в зависимости от роли входа в систему безопасности членства. Из того, что я прочитал, RenderAction на главной странице HTML может сделать это. Поскольку я проверил это, я не уверен, как это будет выглядеть и как в контроллере я проверяю свою текущую роль. Я рассматриваю возможность создания таблицы и привязки допустимых элементов меню к ролевой взаимосвязи, чтобы я мог перейти на главную страницу для рендеринга элементов динамического меню.

Ответы [ 3 ]

6 голосов
/ 23 октября 2008

В контроллере я бы создал класс MenuModel или тому подобное, то есть модель для вашего меню. Это был бы класс только для данных. Создайте и заполните его в контроллере с учетом прав доступа текущего пользователя. Это позволит вам написать модульные тесты, которые обеспечат правильность кода безопасности.

Тогда я передам это в ViewData. Я бы сочетал это с вспомогательным методом, который знает, как отобразить меню на основе класса MenuModel.

1 голос
/ 23 октября 2008

Если эти «роли» являются ролями членства ASP.NET, то вы можете использовать обычный элемент управления LoginView с тегом RoleGroup. Работает нормально в MVC, я нашел. Если «роли» - это что-то другое (например, что-то в вашей модели), то делайте то, что пишет Haacked.

1 голос
/ 23 октября 2008

Я не уверен, что это то, что вы ищете, но у меня был вопрос в том же духе несколько недель назад:

Застрял в создании html-файла с расширением безопасности. Метод расширения ActionLink

Это позволило мне расширить меню на главной странице (или любой другой странице), контролируя доступ к элементам меню через атрибут Authorize:

Вот мой код для этого .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...