web-dev-qa-db-fra.com

RedirectToAction entre les zones?

Existe-t-il un moyen de rediriger vers une action/un contrôleur spécifique sur une zone différente?

131
Jonathan

Avez-vous essayé cela ?:

return RedirectToAction("action", "controller", new { area = "area" });
248
eu-ge-ne

Votre réponse m'a été utile. Je voulais juste ajouter ci-dessous:

Si vous souhaitez rediriger d'une zone à une autre, le code ci-dessus fonctionne bien.

Et, si vous souhaitez rediriger une zone vers un contrôleur/une vue qui n’existe pas dans le dossier area (c’est-à-dire, dans la plupart des cas, votre interface), vous pouvez spécifier area = "".

c'est à dire.

return RedirectToAction("action", "controller", new { area = "" });
39
Suhani Mody

Je voudrais demander un suivi ici. Comprendre que

return RedirectToAction("action", "area1/controller")

Est également représenté par

return RedirectToAction("action", "controller", new { area = "area1" });

Comment creuser dans d'autres zones de nidification en utilisant la même notation? Le gros avantage de la notation appropriée est que, avec reSharper en particulier, le refactoring est géré de manière appropriée si vous devez un jour revenir en arrière et "renommer" l'un des contrôleurs. Une fois que j'ai ajouté une zone supplémentaire au mélange et que je les ai imbriquées les unes dans les autres, la notation précédente n'est plus équivalente.

return RedirectToAction("action", "area1/area2/controller");

Je garderai la question à jour si je la trouve en premier.


Ok, donc je pense que la réponse n’est rien de spectaculaire, mais que la meilleure façon de le faire afin d’obtenir une sorte de coloration valide avec resharper & intellisense est la suivante:

return RedirectToAction("action","controller", new { area = "area1/area2" });

Au moins ici, vous aurez la possibilité d’utiliser F12 ou Ctrl + Clic sur le contrôleur et d’être dirigé vers celui-ci. Si vous devez renommer Resharper, il le trouvera ... mais il ne modifiera PAS les zones définies. ... alors choisissez vos batailles.

Dans la plupart des cas, je peux éviter complètement d’utiliser les redirections ... mais il faut parfois faire ce qu’il faut.

17
beauXjames