Io uso $ .ajax() per interrogare un metodo di azione ogni 5 secondi come segue:
$.ajax({
type: 'GET', url: '/MyController/IsReady/1',
dataType: 'json', success: function (xhr_data) {
if (xhr_data.active == 'pending') {
setTimeout(function() { ajaxRequest(); }, 5000);
}
}
});
e l'azione ActionResult:
public ActionResult IsReady(int id)
{
if(true)
{
return RedirectToAction("AnotherAction");
}
return Json("pending");
}
ho dovuto cambiare il tipo di ritorno azione da ActionResult in per utilizzare RedirectToAction (originariamente era JsonResult e stavo restituendo Json(new { active = 'active' };
), ma sembra avere problemi a reindirizzare e rendere la nuova vista all'interno della chiamata di successo $ .ajax(). Devo reindirizzare a "AnotherAction" all'interno di questo postback ajax di polling. La risposta di Firebug è la vista di "AnotherAction", ma non è rendering.
trovato qualcosa di simile su un altro post dopo una ricerca esauriente. l'unica differenza era che utilizzava invece window.location.replace. Grazie! –