Supposons que j'ai quelques pages
some.web/articles/details/5
some.web/users/info/bob
some.web/foo/bar/7
qui peut appeler un contrôleur d'utilité commun comme
locale/change/es
ou authorization/login
Comment puis-je obtenir ces méthodes ( change
, login
) pour redirigent aux actions précédentes ( details
, info
, bar
) en passant les paramètres précédents pour les ( 5
, bob
, 7
)?
En bref: comment rediriger vers la page que je viens de visiter après avoir effectué une action dans un autre contrôleur?
asp.net-mvc
routing
redirect
adolfojp
la source
la source
Request.Url.AbsolutePath.ToString()
commeAccountController
de »LogOn
la méthode contient des contrôles pour le début de l' URL avec'/'
, etc.GET Index
alorsGET Edit
. L'URL de référence est alors,Index
mais lorsque l'utilisateur le fait,POST Edit
le référent provient désormaisEdit
de la requête GET précédente. Comment puis-je m'assurer dePOST Edit
connaître l'URL à laquelle l'utilisateur a référéGET Edit
?Si vous souhaitez rediriger à partir d'un bouton dans la vue, vous pouvez utiliser:
la source
Si vous n'êtes pas concerné par les tests unitaires, vous pouvez simplement écrire:
la source
Une suggestion sur la façon de procéder de telle sorte que:
.
Vous pouvez utiliser la redirection dans la vue comme ceci:
la source
Dans Mvc en utilisant le html brut dans la page d' affichage avec le script java onclick
Cela fonctionne très bien. l'espoir aide quelqu'un.
@JuanPieterse a déjà répondu en utilisant
@Html.ActionLink
donc si possible quelqu'un peut commenter ou répondre en utilisant@Url.Action
la source
Passez un paramètre returnUrl (URL encodée) aux actions de modification et de connexion et redirigez vers l'intérieur de cette returnUrl donnée. Votre action de connexion peut ressembler à ceci:
la source
J'utilise .Net Core 2 MVC, et celui-ci a fonctionné pour moi, dans l'utilisation du contrôleur
HttpContext.Request.Headers["Referer"];
la source
Vous pouvez revenir à la page précédente en utilisant la
ViewBag.ReturnUrl
propriété.la source
Pour construire dynamiquement le returnUrl dans n'importe quelle vue, essayez ceci:
Connexes: URL de retour dynamique MVC3 (identique mais à partir de n'importe quel contrôleur / action)
la source
Pour ASP.NET Core, vous pouvez utiliser l'attribut asp-route- *:
Autre exemple en détails: imaginez que vous avez un contrôleur de véhicule avec des actions
Indice
Détails
Éditer
et vous pouvez modifier n'importe quel véhicule à partir de l'index ou des détails, donc si vous avez cliqué sur modifier à partir de l'index, vous devez revenir à l'index après la modification et si vous avez cliqué sur modifier à partir des détails, vous devez revenir aux détails après la modification.
Dans votre contrôleur:
la source