2012-09-17 1 views
0

Je suis en train de mettre en place une application web basée sur ASP.NET MVC 3 Razor. Il va chercher son contenu principalement par Ajax. Le menu du site est créé par un fournisseur de sitemap mvc et utilise Ajax.ActionLink pour créer et connecter les événements de clic. Cela fonctionne déjà comme un charme.Landingpage utilisant Ajax.ActionLink?

Le menu fait partie d'une présentation partagée. La mise en page ne doit être utilisée qu'une seule fois - lorsque l'application est en cours de chargement dans le navigateur (également appelée page de destination, "Index" du contrôleur par défaut, appelé "Accueil" à ce jour).

Le contrôleur par défaut renvoie une vue avec la disposition par défaut contenant le menu. Dans le menu il y a aussi un lien vers "Home". Chaque lien dans le menu en dehors du lien vers "Home" fonctionne également comme un charme à ce jour.

Le lien vers la page de renvoi renvoie cependant du contenu Ajax contenant une autre instance du menu car il fait partie de sa mise en page. Comment puis-je distinguer entre une demande de page complète (l'utilisateur entre l'URL dans la ligne d'adresse du navigateur ou clique sur un lien externe à mon "Accueil") et de fournir une vue complète et une requête ajax interne et juste fournir une vue partielle du contenu de la page "Accueil"?

Merci!

Répondre

1

Vous pouvez utiliser cette méthode d'extension dans votre contrôleur: IsAjaxRequest

public ActionResult YourAction() 
{ 
    if (Request.IsAjaxRequest()) 
    { 
     return PartialView("PartialViewName"); 
    } 
    else 
    { 
     return View("ViewName"); 
    } 
} 
+0

Très cool! Merci beaucoup! –