Asp.net-Mvc

Ajax 請求返回 HTTP 錯誤 500,使用 MVC 和 $.ajax 呼叫與 POST?

  • December 18, 2012

我已經看到了幾個關於這個的執行緒,並且我已經嘗試了所有的答案(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

同樣的錯誤。

好吧,我能夠找出問題所在,我的 AJAX 語法甚至操作都沒有問題。只是我返回的對象包含循環引用。通過點擊“網路”選項卡下的 POST 請求,然後查看預覽選項卡,我能夠在 chrome 控制台中看到實際錯誤。這顯示了實際的錯誤消息。

引用自:https://stackoverflow.com/questions/13942304