Nachdem ich von jquery einen "Parsererror" für eine Ajax-Anfrage erhalten habe, habe ich versucht, den POST in einen GET zu ändern und die Daten auf verschiedene Arten zurückzugeben (Klassen erstellen usw.), aber ich kann nicht herausfinden, wo das Problem liegt.
Mein Projekt befindet sich in MVC3 und ich verwende jQuery 1.5. Ich habe ein Dropdown-Menü und beim Onchange-Ereignis starte ich einen Anruf, um einige Daten basierend auf den ausgewählten Daten abzurufen.
Dropdown: (Dies lädt die "Ansichten" aus der Liste im Viewbag und das Auslösen des Ereignisses funktioniert einwandfrei.)
@{
var viewHtmls = new Dictionary<string, object>();
viewHtmls.Add("data-bind", "value: ViewID");
viewHtmls.Add("onchange", "javascript:PageModel.LoadViewContentNames()");
}
@Html.DropDownList("view", (List<SelectListItem>)ViewBag.Views, viewHtmls)
Javascript:
this.LoadViewContentNames = function () {
$.ajax({
url: '/Admin/Ajax/GetViewContentNames',
type: 'POST',
dataType: 'json',
data: { viewID: $("#view").val() },
success: function (data) {
alert(data);
},
error: function (data) {
debugger;
alert("Error");
}
});
};
Der obige Code ruft erfolgreich die MVC-Methode auf und gibt Folgendes zurück:
[{"ViewContentID":1,"Name":"TopContent","Note":"Content on the top"},
{"ViewContentID":2,"Name":"BottomContent","Note":"Content on the bottom"}]
Aber jquery löst das Fehlerereignis für die $ .ajax () -Methode aus, die "parsererror" sagt.