J'ai une méthode d'action qui, en fonction de certaines conditions, doit retourner une vue partielle via Ajax, ou rediriger vers un autre contrôleur/action. La vue correcte est renvoyée mais elle est placée dans les formulaires Ajax UpdateTargetId plutôt que de rediriger vers une toute nouvelle page. Quelqu'un a-t-il une idée de la façon dont je peux accomplir cela ?
Réponses
Trop de publicités?Je pense que je le remanierais pour utiliser jQuery plutôt que MVC Ajax. jQuery vous donnera beaucoup plus de contrôle sur ce que vous pouvez faire avec le résultat que vous obtenez en retour. Si ce n'est pas une option, vous pouvez regarder le callback OnComplete et voir quelles sont les données qui lui sont passées et s'il y a un moyen d'obtenir l'url vers laquelle vous voulez être redirigé.
De plus, il me semble me souvenir que si vous renvoyez un JavaScriptResult, il l'exécutera indépendamment de la façon dont AJAX a été invoqué. Vous pourriez essayer quelque chose comme :
return JavaScript( "window.top.location.href ='" + Url.Action( "Action" ) + "';" );
C'est peut-être ça. enlace pourrait vous aider à résoudre votre problème, et insérez votre javascript pour changer la page actuelle vers un autre contrôleur, par exemple
window.location = 'controller/action';