/ / AJAX retourne une erreur du serveur Interal dans le projet ASP.NET MV3 [duplicate] - javascript, ajax, asp.net-mvc

Appel AJAX renvoyant une erreur du serveur Interal dans le projet ASP.NET MV3 [duplicate] - javascript, ajax, asp.net-mvc

Je suis nouveau avec ASP.NET, MVC3 et AJAX.

J'essaie d'appeler une méthode dans mon contrôleur avec un appel AJAX, mais je reçois une erreur de serveur interne.

Voici ma méthode Javascript:

function DeleteItem(id) {
var answer = confirm("Are you sure ?")
if(answer) {
$.ajax({
type: "POST",
url: "/Item/Delete",
data: id,
dataType: "json",
success: function (data) {
alert("Function called");
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
}
}

et voici ma méthode dans mon contrôleur:

public ActionResult Delete(int idItem) {
Item.Delete(idItem); //delete my item
return RedirectToAction("Index", "Item");
}

La méthode Javascript est appelée, mais quand je réponds "Oui, je suis sûr de vouloir supprimer", je reçois une erreur de serveur interne et je ne sais pas pourquoi. Qu'est-ce qui cause l'erreur du serveur?

Réponses:

1 pour la réponse № 1

Je suppose que la raison pour laquelle vous obtenez unserveur interne est parce que le nom de l'int que vous transmettez ne correspond pas à l'int que vous attendez dans votre contrôleur. Par conséquent, idItem est probablement nul, ce qui provoque votre erreur de serveur interne lors de la suppression.

Modifier les données pour correspondre

function DeleteItem(id) {
var answer = confirm("Are you sure ?")
if (answer) {
$.ajax({
type: "POST",
url: "/Item/Delete",
data: { idItem: id},
dataType: "json",
success: function (data) {
alert("Function called");
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
}
}

0 pour la réponse № 2

Votre méthode ActionResult n'a pas l'attribut [HttpPost]. Votre appel Ajax est de type "POST".


0 pour la réponse № 3

Peut-être avez-vous besoin de sérialiser le id vous passez à l'action au format JSON. Et vous devez également décorer votre méthode d'action avec [HttpPost] attribut pour qu'il accepte les verbes POST.