Ich habe mehrere Threads darüber gesehen, und ich habe alle Antworten versucht (ASP.NET MVC JsonResult return 500)
Meine Ajax-Anfrage ist ein 500 Interner Fehler erneut drehen. Wenn ich debugge, komme ich nie zu meiner Aktion.
Hier ist meine Ajax-Aufruf:
$.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);
}
});
Und meine Aktion:
[HttpPost]
public ActionResult UpdateSortOrder(Guid itemToUpdateId, Guid newParentItemId, Guid newPreviousItemId)
{
FormItem updatedItem = _formItemService.GetOne(x => x.Id == itemToUpdateId);
return Json(updatedItem, JsonRequestBehavior.DenyGet);
}
Chromkonsole verwenden, das sind die Antwort-Header aus der Antwort:
HTTP/1.1 500 Interner Serverfehler Cache-Control: privat 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 Datum: Di, 18. Dezember 2012 21 : 53: 41 GMT Content-Length: 17041
Server-Protokolle zeigen keine Substatus Codes. Irgendeine Idee, was ich hier falsch mache? Ich habe es vorgezogen, POST anstelle von GET zu verwenden.
die Formulardaten wird wie folgt angezeigt:
itemToUpdateId: 18ac5399-342e-4a39-9da1-3281a89501df
newParentItemId: null
newPreviousItemId: null
Welche ist richtig.
Ich habe versucht, die content auf application/json und traditionellen = true wie in dieser Frage setzen: Sending ajax post to mvc with "application/json; charset=utf-8" returns error 500 from vs web developer server
gleiche Fehler.
Haben Sie versucht, den rohen POST mit Fiddler zu sehen, um zu sehen, was über die Leitung geht? –
können Sie teilen, wie Sie Ihre Routen einstellen? – kabaros
Die Route funktioniert, im Moment wird nur die Standardroutenregel verwendet, die durch Hinzufügen eines Bereichs ausgefüllt wird. Wenn ich die Aktion ändere, um eine Ansicht zurückzugeben und die URL einzugeben, funktioniert sie, so dass die Route korrekt verarbeitet wird. – SventoryMang