我已经看过关于这个的几个线程,我已经尝试了所有的答案(http://stackoverflow.com/questions/3113952/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 Internal Server Error
Cache-Control: private
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/7.5
X-AspNetMvc-Version: 3.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Tue,18 Dec 2012 21:53:41 GMT
Content-Length: 17041
服务器日志不显示子代码。任何想法我在这里做错什么?我更喜欢使用POST而不是GET。
表单数据显示为:
itemToUpdateId:18ac5399-342e-4a39-9da1-3281a89501df
newParentItemId:null
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
同样的错误。