2010-12-01 6 views
1

Je suis tout nouveau à MVC, et je saute la tête en premier. Je crée une demande de temps et de présence. Je veux que l'utilisateur se connecte simplement et voit l'interface utilisateur pour le pointage. Cependant, pour les employés, je veux fournir une interface différente. Ma pensée à ce sujet est simplement d'offrir deux points de vue, mais je ne suis pas sûr de la méthode "habituelle" de le faire. Pour l'instant, j'utilise le AccountController pour gérer l'authentification et utiliser les attributs d'autorisation standard.Comment afficher une vue différente en fonction du rôle de membre?

Est-ce que je devrais simplement avoir l'action d'index de mon contrôleur domestique vérifier le rôle et retourner une vue différente? Ou devrais-je en quelque sorte diriger les utilisateurs vers différentes actions en fonction de leur rôle d'adhésion?

+0

Je pense que beaucoup dépend si vos vues alternatives ont le même modèle de vue. Est-ce le cas? – CRice

+0

Non, ils seraient fondamentalement des fonctions totalement différentes. –

Répondre

1

Une façon de le faire est de rôles de configuration et puis utilisez le code suivant dans votre point de vue:

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

Vous pouvez aussi le faire avec un filtre:

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

+0

Oui, c'était ma première pensée, en utilisant le rendu partiel. Mais il semblait que cela violerait le SRP, en utilisant des fonctions entièrement différentes de la même action du contrôleur. –

+0

Vous pouvez renvoyer deux vues séparées si vous le souhaitez. Cela dépend de la façon dont vous voulez organiser votre site. – rboarman

+0

Si vous aimez la réponse, veuillez marquer la question en cliquant sur la coche. – rboarman

Questions connexes