2010-04-25 5 views
0

J'ai une boîte de dialogue JQuery sur une page qui appelle quelque chose comme ceci:contexte de post JQuery avec ASP.Net MVC

$.post("/MyController/MyAction", { myKey: key} //... 

Et cela devient avec succès ici:

[HttpPost] 
public ActionResult MyAction(int myKey) 
{ 
    //do some stuff 
    return RedirectToAction("AnotherAction");  
} 

Le problème est que le RedirectToAction n'a aucun effet sur le webbrowser. Je devine que c'est parce que le poste de JQuery est un peu différent sur le pas de sorte qu'il ne sait pas où envoyer la réponse? Comment puis-je obtenir le navigateur pour charger la nouvelle réponse?

Répondre

0

Oui, le $.post effectue un post ajax et l'action ne redirige pas.

Si vous êtes en train de rediter de toute façon, pourquoi ne pas simplement soumettre un formulaire, pas besoin d'ajax.

Vous pouvez également faire un $.get et renvoyer un JsonResult pour indiquer la réussite/l'échec et la redirection à l'aide de jQuery/javascipt.

Mise à jour

Quelque chose comme ceci:

où vous pouvez définir OK ou ERR en conséquence et ajouter un objet comme « élément » qui peut être quelque chose à utiliser sur la vue ou une erreur message, URL à rediriger vers etc

[HttpPost] 
public JsonResult MyAction(int myKey) 
{ 
    //do some stuff 
    return new JsonResult { Data = new { Item = item, Result = "OK/ERR" } }; 
}