Appel Ajax à l'action d'un contrôleur résultat renvoie un message d'erreur
Je fais un appel Ajax pour une ActionResult Méthode appelée relevé électronique.
Voici ce que je veux
-
si l'outil checkUser = false, il devrait y avoir une redirection vers une vue
-
Si l'outil checkuser n'est pas faux, je veux revenir un Fait que le succès et avoir mon ajax
code faire quelque chose.
Droit maintenant, je suis incapable de les rediriger vers l'énoncé de vue et tout ce que j'obtiens est l'alerte de la message d'erreur (une erreur s'est produite lors de la tentative de traiter ce)
Que pensez-vous est le problème avec ce code?
<div class="eStmnt">
<div class="eStmntAd">
<h3>Go Green!</h3>
</div>
<p class="eStmntAffirm hide">Testing Testing</p>
</div>
<script type="text/javascript">
$(".eStmnt").click(function() {
$.ajax({
type: "POST",
url: '@Url.Action("Estatement","MyController")',
dataType: "json",
success:function(result) {
if (result == "Done") {
$(".eStmntAffirm").removeClass("hide").addClass("show");
}
},
error: function() {
alert('An error occured while trying to process this');
}
});
});
</script>
public ActionResult Estatement()
{
bool checkUser = false;
string result = string.Empty;
if (checkUser == false)
{
return RedirectToAction("Statement","MyProducts");
}
result = "Done";
return Json(result);
}
Vous devez vous connecter pour publier un commentaire.
Que l'Ajax s'attend à une JSON, Votre approche ne fonctionnera pas. Cependant, vous pouvez essayer ceci à la place
Ajax succès fonction de rappel
Contrôleur
Votre contrôleur doit renvoyer une JsonResult au lieu d'une ActionResult
Ex: http://geekswithblogs.net/michelotti/archive/2008/06/28/mvc-json---jsonresult-and-jquery.aspx
ActionResult
est la classe de base deJsonResult
donc pas de problème avec elle. Voir MSDN DOCsVous êtes à la suite d'une mauvaise approche...pour gérer ce reqirent vous avez besoin pour suivre ce processus...
D'abord changer votre appel ajax type de "Get" ou si elle est en poste, puis changer votre méthode d'action de la manière suivante:
1.Changement Ajax type de Poste .
Puis dans la réussite de la méthode de votre appel ajax écrire ceci: