2009-05-08 11 views
7

Ho un metodo di azione che a seconda di alcune condizioni deve restituire una vista parziale tramite ajax o reindirizzare a un altro Controller/Azione. Viene restituita la vista corretta, ma la sta posizionando nei moduli Ajax UpdateTargetId anziché reindirizzare a una pagina completamente nuova. Qualcuno ha idea di come posso farlo?Reindirizzare dall'interno di un modulo Ajax post

risposta

16

Penso che avrei refactoring questa opzione per utilizzare jQuery, piuttosto che MVC Ajax. jQuery ti darà molto più controllo su cosa puoi fare con il risultato che ottieni. Se questa non è un'opzione, potresti voler controllare il callback OnComplete e vedere quali dati ti vengono passati e vedere se c'è un modo per ottenere l'url da cui vuoi essere reindirizzato.

Inoltre, mi sembra di ricordare che se si restituisce un JavaScriptResult lo eseguirà indipendentemente da come è stato richiamato AJAX. Potresti provare qualcosa del tipo:

return JavaScript("window.top.location.href ='" + Url.Action("Action") + "';"); 
+0

Ha lavorato meravigliosamente grazie per il tuo aiuto. –

1

Può essere questo link potrebbe contribuire a risolvere il problema, e inserire il javascript per cambiare pagina corrente per altri controller, ad esempio

window.location = 'controller/action';