Я видел несколько потоков об этом, и я пробовал все ответы (ASP.NET MVC JsonResult возвращает 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);
}
Используя хром-консоль, это ответные заголовки ответа:
HTTP/1.1 500 Внутренняя ошибка сервера Cache-Control: private Content-Type: text/html; charset = utf-8 Сервер: Microsoft-IIS/7.5 X-AspNetMvc-версия: 3.0 X-AspNet-версия: 4.0.30319 X-Powered-By: ASP.NET Дата: Вт, 18 дек 2012 21:53:41 GMT Контент-длина: 17041
В журналах сервера нет кодов подстановки. Любая идея, что я делаю неправильно здесь? Я предпочитаю использовать POST вместо GET.
Данные формы отображаются как:
itemToUpdateId: 18ac5399-342e-4a39-9da1-3281a89501df
newParentItemId: нулевой
newPreviousItemId: нулевой
Что правильно.
Я попытался настроить contentType на application/json и традиционный = true, как в этом вопросе: Отправка сообщения ajax в mvc с помощью "application/json; charset = utf-8" возвращает ошибку 500 с сервера веб-разработчиков
Такая же ошибка.