Как отобразить другое представление в зависимости от роли участника? - PullRequest
1 голос
/ 02 декабря 2010

Я новичок в MVC, и я прыгаю в голову первым.Я создаю приложение времени и посещаемости.Я хочу, чтобы пользователь просто вошел в систему и увидел интерфейс пользователя для синхронизации. Однако для наемных работников я хочу предоставить другой интерфейс.Я думаю об этом просто предложить два представления, но я не уверен в «обычном» способе сделать это.

Сейчас я использую AccountController для обработки аутентификации и использую стандартные атрибуты авторизации.

Должен ли я просто выполнить действие индексации моего домашнего контроллера, проверить роль и вернуть другое представление?Или я должен каким-то образом направлять пользователей к различным действиям в зависимости от их членства?

1 Ответ

1 голос
/ 02 декабря 2010

Один из способов сделать это - настроить роли, а затем использовать такой код в своих представлениях:

<%  
    if (User.IsInRole("AdminRole") 
        Html.RenderPartial("AdminView");  
    else if (User.IsInRole("SalariedRole") 
        Html.RenderPartial("SalaryView");  
%>

Вы также можете сделать это с фильтром:

http://weblogs.asp.net/fredriknormen/archive/2008/03/12/asp-net-mvc-framework-2-interception-and-creating-a-role-action-filter.aspx

...