我是 ASP.NET、MVC3 和 AJAX 的新手。
我尝试通过 AJAX 调用来调用 Controller 中的方法,但收到内部服务器错误。
这是我的 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);
}
});
}
}
这是我在 Controller 中的方法:
public ActionResult Delete(int idItem) {
Item.Delete(idItem); //delete my item
return RedirectToAction("Index", "Item");
}
调用了 Javascript 方法,但是当我回答“是的,我确定要删除”时,我收到内部服务器错误,但我不确定原因。是什么原因导致服务器错误?
最佳答案
我的猜测是,您获得内部服务器的原因是您传入的 int 名称与您在 Controller 中期望的 int 不匹配。因此,idItem 很可能为 null,这会导致您在删除时发生内部服务器错误。
更改数据以匹配
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);
}
});
}
}
关于javascript - AJAX 调用在 ASP.NET MV3 项目中返回内部服务器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15450070/