MVC, ajax l'appel de la méthode du contrôleur
Je suis en train d'utiliser ajax pour appeler une méthode de contrôleur et j'obtiens une erreur de serveur interne.
Le jquery ressemble à ceci:
function user(id) {
alert(id+" "+$("#comment").val());
var param = {
userId : id,
comments : $("#comment").val()
};
$.ajax({
url: "/Admin/User",
contentType: "application/x-www-form-urlencoded",
type: "POST",
datatype: "json",
data: param,
error: function (xmlHttpRequest, errorText, thrownError) {
alert(xmlHttpRequest+"|"+errorText+"|"+thrownError);
},
success: function (data) {
if (data != null) {
alert("success");
}
}
});
}
le contrôleur ressemble à ceci:
[HttpPost]
public ActionResult User(int id, string comment)
{
var user = UserModel.GetPerson(id);
user.IsDeleted = true;
UserModel.UpdatePerson(user);
return RedirectToAction("ManageUsers");
}
Il semble que le code n'est pas même arriver à la manette. la 1ère alerte dans user(id)
est déclenché. Personne ne voir ce qui se passe ici?
Vous devez vous connecter pour publier un commentaire.
Vos propriétés de l'objet de conflits avec les arguments de l'action
Les Propriétés De L'Objet
vs Arguments de l'Action
Essayez de la modifier pour qu'ils correspondent, donc par exemple:
Veuillez noter que vous n'allez pas être en mesure de rediriger à l'action à partir d'une requête asynchrone. Ce genre de défaites le but. Vous devez rediriger sur un rappel.
La suite de Gabe réponse, je pense que vous trouverez que vous ne pouvez pas rediriger vers d'action à partir d'une requête ajax. Dans votre réussite de rappel vous aurez besoin de mettre le document.l'emplacement de l'url de l'action que vous souhaitez rediriger trop. Actuellement le rediriger vers l'action se retourné par mvc, mais pas à votre navigateur.
Rappel
Contrôleur de retour
Ce n'est pas une réponse exacte à cette question, et j'en suis conscient, mais il y avait un cas qui s'est produit pour moi alors que j'essayais d'appeler la méthode du contrôleur via l'appel AJAX. J'ai vérifié la méthode de contrôleur et j'ai réalisé que je n'ai pas mis
[AllowAnonymous]
après[HttpPost]
. Évidemment, il est nécessaire dans mon application, car il existe différents cas pour les utilisateurs connectés et les utilisateurs anonymes. L'absence de ce mot-clé causé AJAX pas de frapper la méthode du contrôleur, peut-être il ya quelqu'un qui est en train de faire la même chose et de voir cette réponse.