2008-11-11 11 views
7

J'essaie de concevoir une page d'accueil pour un site MVC qui a deux vues différentes, selon si l'utilisateur est connecté ou non. Donc, l'image par défaut (non connecté) affiche des informations générales non spécifiques. Si je suis connecté, la vue montre plutôt des trucs personnels.ASP.NET MVC une route, deux vues différentes

Quelle est la meilleure pratique pour gérer cela? N'oubliez pas, nous devons également tester cette unité.

Merci beaucoup!

Répondre

13

Cela devrait être un cas simple de retourner la vue appropriée de votre contrôleur.

public ActionResult Index() 

    If (User.IsLoggedOn) 
    { 
     // Do user-specific controller stuff here... 

     return View("LoggedOnIndex"); 
    } 
    else 
    { 
     // Do anon controller stuff here... 

     return View("AnonymousIndex"); 
    } 
+0

Sérieux? putain - c'est simple! Je pensais à une vue avec une logique partagée (qui me faisait peur). Agréable et propre. Impressionnant! –

2

Je ne sais pas si vous pouvez faire

User.IsloggedOn

dans le passé, mais maintenant je dois dire

User.Identity.IsAuthenticated

si vous utilisez le haut Dans l'authentification par formulaires Web.