164 votes

RedirectToAction entre les zones?

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

313voto

eu-ge-ne Points 17847

Avez-vous essayé cela ?:

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

57voto

Suhani Mody Points 126

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 ne se trouve 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 = "" });
 

17voto

beauXjames Points 1565

Je voudrais demander à un suivi jusqu'ici. La compréhension que

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

Est également représenté par

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

Comment fait-on forer vers le bas dans la zone de imbrications en utilisant la même notation? Le gros gain en avoir les notation, c'est que, avec reSharper en particulier, le refactoring est manipulé de manière appropriée si jamais vous avez besoin de revenir en arrière et "renommer" de l'un des contrôleurs. Une fois que j'ai ajouter une zone supplémentaire pour le mélange et les avoir imbriqué dans un autre, les notations précédentes n'est pas équivalent.

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

Je vais garder la question à jour si je le trouve en premier.


Ok, alors je crois que la réponse n'est pas rien de spectaculaire, mais la meilleure façon de le faire de sorte que vous obtenez toujours une sorte de coloration valide w/ resharper & intellisense est comme suit:

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

Au moins ici, vous aurez la possibilité de F12 ou Ctrl+Cliquez sur le contrôleur et d'être dirigée et si vous avez besoin de faire un renommage Resharper va le trouver...mais ça ne fera PAS de changements pour les zones définies...donc choisissez vos batailles.

Dans la plupart des conditions, je peux éviter d'utiliser des redirections entièrement...mais parfois, tu dois faire ce que tu dois faire.

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