当我使用 jQuery.ajax 和 POST 方法从数据库中删除项目时,出现此错误:
GET Http://localhost:54010/Admin/Category/Delete?id=77 404 Not Found
类别 Controller 中的操作:
[HttpPost]
public ActionResult Delete(int id) {
try {
db.CategoryRepository.Delete(id);
db.Save();
return Json(new {Result = "OK"});
} catch (Exception ex) {
return Json(new { Result = "ERROR", Message = ex.Message });
}
}
查看:
<a id="delete-category" class="btn btn-small" href="#">
<i class="icon-remove"></i>
@Resource.delete
</a>
JavaScript:
$(function () {
$('#delete-category').click(function (event) {
event.preventDefault();
$.ajax({
method: 'POST',
url: '@Url.Action("Delete","Category")',
dataType: 'json',
data: { id: '@Model.CategoryModel.Id' },
success: function (data, textStatus, jqXHR) {
console.log("success");
},
error: function () {
alert('error');
}
});
});
});
为什么点击事件没有生成POST?
最佳答案
您需要通过设置type
参数来告诉ajax()
方法发出post
请求:
$.ajax({
// method: 'POST', <-- remove this
type: 'POST', // <-- add this
url: '@Url.Action("Delete","Category")',
dataType: 'json',
data: { id: '@Model.CategoryModel.Id' },
success: function (data, textStatus, jqXHR) {
console.log("success");
},
error: function () {
alert('error');
}
});
关于MVC3 中的 jQuery Ajax POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13377139/