2009-03-16 8 views
2

J'ai récemment commencé à regarder dans asp.net mvc. Voici mon problème.asp.net mvc newbie question

Supposons que chaque page d'une application nécessite une variable définie par l'utilisateur, par ex. Un rendez-vous. Si l'utilisateur commence à partir de l'URL que je fournis, tout est bon car je demande cette date et je l'enregistre pour la session. Comment puis-je rediriger l'utilisateur vers la première page s'il enregistre l'autre URL (vers un autre contrôleur et une autre action). En d'autres termes, je suppose que je cherche quelque chose comme l'attribut [Authorize] mais au niveau de l'application.

Merci pour toute aide.

Répondre

3

Je créerais probablement un contrôleur de base dérivé de tous mes contrôleurs. Dans le contrôleur de base, je remplacer la méthode OnActionExecuting pour vérifier la session pour la variable requise. Si la variable n'est pas présente, je définirais la propriété ActionExecutingContext Result à RedirectToRouteResult sur le contrôleur/action approprié pour définir la variable.

Une autre alternative consiste à créer un FilterAttribute personnalisé que vous décorerez avec les contrôleurs/actions appropriés, ce qui fait essentiellement la même chose. Je ne ferais cela que si le filtre devait s'appliquer uniquement à certains contrôleurs ou actions et pas tous comme vous le décrivez dans votre question.

+0

Merci pour la réponse rapide. Overriding OnActionExecuted a parfaitement fonctionné. – coderguy123