web-dev-qa-db-fra.com

RedirectToAction ne fonctionne pas après la publication réussie de jquery ajax?

Ce qui suit ne redirige pas ma page: Voici le code MVC:

    [HttpPost]
    public ActionResult GoHome()
    { 
         return RedirectToAction("Index", "Home");   
    }

Voici le post ajax:

   $.support.cors = true;

            $.ajax({
                type: "POST",
                url: "http://localhost/UserAccount/GoHome",
                dataType: 'json',
                crossDomain: true
            });

La publication est réussie et lorsqu'elle détecte l'action GoHome, elle ne redirige pas vers l'action d'index du contrôleur domestique.

42
xaisoft

Vous ne pouvez pas rediriger à partir d'un message AJAX. Vous pouvez cependant renvoyer l'URL vers laquelle vous souhaitez rediriger le navigateur et rediriger à partir de Javascript.

Contrôleur

[HttpPost]
public ActionResult GoHome()
{ 
     return Json(Url.Action("Index", "Home"));   
}

Javascript

$.ajax({
    type: "POST",
    url: "http://localhost/UserAccount/GoHome",
    dataType: 'json',
    crossDomain: true,
    success: function (data) {
        window.location.href = data;
    }
});
72
Tommy