Al obtener un "parsererror" de jquery para una solicitud de Ajax, he intentado cambiar la POST a una GET, devolviendo los datos de diferentes maneras (creando clases, etc.) pero parece que no puedo entender cuál es el problema.
Mi proyecto está en MVC3 y estoy usando jQuery 1.5. Tengo un menú desplegable y, en el evento onchange, disparo una llamada para obtener algunos datos basados en lo que se seleccionó.
Menú desplegable: (esto carga las "Vistas" de la lista en el Viewbag y disparar el evento funciona bien)
@{
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");
}
});
};
El código anterior llama con éxito al método MVC y devuelve:
[{"ViewContentID":1,"Name":"TopContent","Note":"Content on the top"},
{"ViewContentID":2,"Name":"BottomContent","Note":"Content on the bottom"}]
Pero jquery dispara el evento de error para el método $ .ajax () que dice "parsererror".