$ .getJSON не возвращает ответ с MVC3 - PullRequest
3 голосов
/ 08 мая 2011

Я провел ДЛИННОЕ время, изучая это, и просто не могу понять, что случилось. У меня есть следующее:

$.getJSON(
                '/adminStatus/GetJsonData',
                { name: $('#textSearch')[0].value },
                function (data) {
                    alert("3");
//                  $('#studentList > div').remove();
//                  for (s in data) {
//                      alert("4");
//                      var student = data[s];
//                      $('#studentList').append('<div>(' + student.StudentId + ') ' + student.FirstName + ' ' + student.LastName + '</div>');
//                  }
                }
            );

Этот код запускает действие в моем контроллере, и это действие возвращает данные. На самом деле это код из другого примера:

public JsonResult GetJsonData(string name)
        {
            return new JsonResult
            {
                Data = (from student in Student.GetStudentDataList()
                        where student.LastName.StartsWith(name)
                        select student).ToArray<Student>()
            };
        }

Я проверяю, и данные заполняются данными.

Однако с возвращаемыми данными ничего не происходит, и когда я добавляю комментарии, я даже не могу отобразить предупреждение («3»).

Я делаю что-то действительно явно не так? Я думаю, что копирую рабочий пример, но кажется, что ничего не возвращается, и функция (data) {} не выполняется.

Любая помощь будет высоко ценится.

Спасибо

Ответы [ 2 ]

11 голосов
/ 08 мая 2011

Было бы лучше проверить это как-то как Firebug , чтобы увидеть, есть ли какие-либо ошибки. Попытка устранить неполадки, не зная точно, что происходит, просто приведет к еще большему разочарованию.

Единственное, что я считаю потенциальной проблемой, это то, что у вас не установлена ​​JsonRequestBehavior.AllowGet, поэтому вы можете получить ошибку сервера. Чтобы узнать, так ли это, вы можете изменить свое возвращение на:

var data = (from student in Student.GetStudentDataList()
           where student.LastName.StartsWith(name)
           select student).ToArray<Student>();

return Json(data, JsonRequestBehavior.AllowGet);
1 голос
/ 08 мая 2011

При отладке такого рода проблем fiddler - лучший инструмент, поскольку он всегда показывает вам, что находится под капотом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...