Переменная games
по-прежнему является запросом LINQ.Вам нужно вызвать ToList()
или ToArray()
для этого, чтобы запрос был выполнен и дать вам элементы результата.
public IEnumerable<object> GetAllGames()
{
var games = db.Games.Include(d => d.DailyDatas)
.GroupBy(d => new { d.name, d.year })
.OrderBy(d => d.Key.name)
.Select(d => new
{
d.Key.year,
d.Key.name
}
);
return games.ToList();
}
Здесь, так как мы вызываем метод ToList
, возвращаемое значениеметода представляет собой список анонимных объектов (со свойствами года и имени).Поэтому нам пришлось изменить тип возвращаемого метода на IEnumerable<object>
. Вы можете открыть вкладку сети вашего браузера devtools (F12) -> и увидеть, как выполняется вызов ajax и каков его ответ.Если все в отношении URL и маршрутизации хорошо, вы должны увидеть ответ 200 OK с массивом json в теле ответа.Если вы видите 404, это означает, что маршрутизация не настроена должным образом для URL, который пытается получить клиентский код.Если вы видите 500, это означает, что код вашего сервера был вызван, но потерпел крах из-за некоторого исключения, возникшего во время выполнения кода.Вы, вероятно, сможете увидеть подробности исключения на вкладке ответа.
Также ваш текущий код выполняет селектор jquery $('#test')
внутри цикла.Вы можете улучшить это, кэшируя селектор элемента контейнера вне цикла.
function success(data) {
var $container = $('#test');
var items = '';
$.each(data, function (i, val) {
items += '<p>' + val.name + ' ' + ' was released in ' + val.year + '</p>';
});
$container.append(items);
}