getJSON получает только первый элемент возвращаемого массива


У меня есть функция API controller, которая возвращает массив объектов. Вот как я вызываю свою функцию и пример того, что происходит:

$.getJSON("/api/mycontroller/myfunc/?id=" + id, function (data) {
   data[0].field1  <- correct value here
   data[0].field2  <- correct value here

   data[1].field1  <- null
   data[1].field2  <- null
}

Первый элемент содержит правильные значения, как показано на рисунке, но все остальные элементы являются нулевыми. data.length возвращает правильный размер массива, и я проверил, что мой контроллер возвращает значения, которые я ожидаю. Я что-то упустил???

Обновление: Вот мой метод контроллера:

public data[] myfunc(long id)
{
     return db.MyTable.Where(x => x.ID == id).ToArray();
}  

Как уже упоминалось, я убедитесь, что возвращаемый массив содержит правильные значения.

Ответ JSON таков:

Object { $id="1",  Referral={...},  MeetingID=1,  more...}
$id     "1"
Referral    Object { $id="2",  IntakeMember={...},  Meetings=[3],  more...}
MeetingID   1
MeetingDate "2015-01-01T00:00:00"
Notes   "test1"
ReferralID  22

Object { $ref="16"}
$ref    "16"

Object { $ref="17"}
$ref    "17"

Таким образом, как вы можете видеть, элементы 2 и 3 просто имеют это значение "ref" в них...не знаю почему??

Обновление #2:

Пытался $.get, а не $.getJSON безуспешно, та же проблема. Я также попытался внести следующие изменения в контроллер:

MyData[] data = db.MyTable.Where(x => x.ID == id).ToArray();
JsonResult jsonResult = new JsonResult
{
    Data = data,
    JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
return jsonResult.Data;

Я все еще испытываю ту же проблему.

2 2

2 ответа:

$.getJSON() ожидает, что возвращаемые данные будут JSON. Измените метод контроллера, чтобы вернуть JSON

public JsonResult myfunc(long id)
{
     var data = db.MyTable.Where(x => x.ID == id);
     return Json(data, JsonRequestBehavior.AllowGet);
}  

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