J'ai essayé de trouver un moyen de créer une solution de navigation basée sur les rôles dynamique pour un projet sur lequel je travaille.Navigation basée sur les rôles
La navigation doit afficher uniquement les liens qui sont liés au rôle des utilisateurs, par exemple: un administrateur aura des liens pour afficher les statistiques d'application, gérer les comptes clients, ect ... alors qu'un utilisateur standard aurait des liens pour gérer
J'ai actuellement une vue partielle unique appelée Navigation avec quelques instructions conditionnelles de base pour la vérification des rôles et un mélange de balisage pour afficher les liens appropriés. Cela fonctionne, mais, je sais que cela pourrait rapidement devenir ingérable.
Navigation Vue partielle:
@if(User.IsInRole("Admin")) {
<li><a href="#">Statistics</a></li>
<li><a href="#">Accounts</a></li>
<li><a href="#">Dashboard</a></li>
}
@if(User.IsInRole("User")) {
<li><a href="#">Account</a></li>
<li><a href="#">Friends</a></li>
}
// code omitted
Y at-il un moyen d'obtenir cette logique de la vue et de laisser la poignée du contrôleur cela?
utilise votre partielle un enfant de la méthode d'action? –
Merci Dave. Non. Je n'ai pas vraiment utilisé les actions pour enfants auparavant. Pourriez-vous développer votre question? Je ne suis pas sûr du rôle que les actions enfant joueraient dans ce scénario. – mezmi
Les actions des enfants sont géniales. Ce sont des actions qui vous rendent un modèle partiel. vous les appelez 'Action ("/Controller/Action/id ")'. La partie id peut être votre identifiant pour la navigation que vous voulez créer et le modèle peut être une liste d'éléments nav. Mieux encore, votre action enfant peut rechercher le rôle de vos utilisateurs sans argument et retourner la barre de navigation appropriée. J'ai déjà utilisé ceci pour la navigation basée sur les rôles. –