129 votes

Comment puis-je rediriger vers l'action précédente dans ASP.NET MVC?

Laisse supposer que j'ai quelques pages

  • some.web/articles/details/5
  • some.web/users/info/bob
  • some.web/foo/bar/7

que l'on peut appeler un utilitaire commun contrôleur comme

locale/change/es ou authorization/login

Comment puis-je obtenir ces méthodes (change, login) pour rediriger vers les actions précédentes (details, info, bar) en passant les paramètres précédents (5, bob, 7)?

En bref: Comment puis-je rediriger vers la page que j'ai visité après l'exécution d'une action dans un autre contrôleur?

161voto

Nathan Ridley Points 10444

essayer:

 public ActionResult MyNextAction()
{
    return Redirect(Request.Referrer);
}
 

alternativement, touchant ce que darin a dit, essayez ceci:

 public ActionResult MyFirstAction()
{
    return RedirectToAction("MyNextAction",
        new { r = Request.Url.ToString() });
}
 

puis:

 public ActionResult MyNextAction()
{
    return Redirect(Request.QueryString["r"]);
}
 

47voto

JuanPieterse Points 39

Si vous souhaitez rediriger à partir d'un bouton de la vue, vous pouvez utiliser:

 @Html.ActionLink("Back to previous page", null, null, null, new { href = Request.UrlReferrer})
 

28voto

Rahat Points 382

Si vous n'êtes pas concerné par les tests unitaires, vous pouvez simplement écrire:

 return Redirect(ControllerContext.HttpContext.Request.UrlReferrer.ToString());
 

7voto

Darin Dimitrov Points 528142

Transmettez un paramètre returnUrl (adresse URL codée) aux actions de modification et de connexion et redirigez l'intérieur vers cette returnUrl donnée. Votre action de connexion pourrait ressembler à quelque chose comme ceci:

 public ActionResult Login(string returnUrl) 
{
    // Do something...
    return Redirect(returnUrl);
}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X