如何根据成员角色显示不同的视图?

时间:2010-12-01 22:14:05

标签: asp.net asp.net-mvc-2 asp.net-membership

我对MVC来说是全新的,我首先要抢先一步。我正在创建一个考勤应用程序。我希望用户只需登录并查看用于打开时钟的用户界面。但是,对于受薪员工,我想提供不同的界面。我的想法是简单地提供两种观点,但我不确定这种做法的“习惯”方法。

现在我正在使用AccountController处理身份验证,并使用标准的Authorization属性。

我应该让我的家庭控制器的索引操作检查角色并返回不同的视图吗?或者我应该以某种方式根据用户角色将用户分配到不同的操作?

1 个答案:

答案 0 :(得分:1)

一种方法是设置角色,然后在您的视图中使用这样的代码:

<%  
    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