我已经看到了几个关于这个的线程,并且我已经尝试了所有的答案(ASP.NET MVC JsonResult return 500)
我的 ajax 请求重新返回 500 内部错误。如果我调试,我什至不会采取行动。
这是我的ajax调用:
$.ajax({
url: '@Url.Action("UpdateSortOrder", "FormItems")',
data: { itemToUpdateId: item.attr("id"), newParentItemId: parentItemId, newPreviousItemId: previousItemId },
type: 'POST',
success: function (data) {
console.log(data);
},
error: function (xhr, status, exception) {
console.log("Error: " + exception + ", Status: " + status);
}
});
而我的行动:
[HttpPost]
public ActionResult UpdateSortOrder(Guid itemToUpdateId, Guid newParentItemId, Guid newPreviousItemId)
{
FormItem updatedItem = _formItemService.GetOne(x => x.Id == itemToUpdateId);
return Json(updatedItem, JsonRequestBehavior.DenyGet);
}
使用 chrome 控制台,这些是来自回复的响应标头:
HTTP/1.1 500 内部服务器错误缓存控制:私有内容类型:文本/html;charset=utf-8 服务器:Microsoft-IIS/7.5 X-AspNetMvc-Version:3.0 X-AspNet-Version:4.0.30319 X-Powered-By:ASP.NET 日期:2012 年 12 月 18 日星期二 21:53:41 GMT内容长度:17041
服务器日志不显示子状态代码。知道我在这里做错了什么吗?我更喜欢使用 POST 而不是 GET。
表单数据显示为:
itemToUpdateId:18ac5399-342e-4a39-9da1-3281a89501df
newParentItemId:空
newPreviousItemId:null
哪个是对的。
我已经尝试将 contentType 设置为 application/json 和 traditional = true 就像在这个问题中一样:Sending ajax post to mvc with "application/json; charset=utf-8" returns error 500 from vs web developer server
同样的错误。