Внутренняя ошибка сервера при попытке получить данные POST из бэкэнда; ASP.NET MVC с AngularJS

0

база данных GetTeams успешно возвращает список.. но я не могу даже console.log данных и ничего не делать. Если у меня есть GetTeams return:

return Json("testing", JsonRequestBehavior.AllowGet);

он работает нормально, хотя. Я не могу понять, что здесь происходит и почему это не работает. Кто-нибудь может мне помочь? благодаря

ASP.NET MVC

    [HttpPost]
    public JsonResult GetTeams(int leagueId)
    {
        try
        {
            using (var sdb = new SoccerDataEntities())
            {
                var teamList = (from teams in sdb.footballTeams
                                orderby teams.name ascending
                                where teams.league_id == leagueId
                                select teams).ToList();

                return Json(teamList, JsonRequestBehavior.AllowGet);
            }


        }
        catch (Exception e)
        {
            return Json(false, JsonRequestBehavior.DenyGet);
        }
    }

Угловой контроллер

HeadlinesFactory.getTeamsFromLeague(league.LeagueId)
        .success(function (data) {                
            console.log(data);
        });

РЕДАКТИРОВАТЬ:

Классы

public class footballTeam
{
    public footballTeam();

    public string coach { get; set; }
    public virtual footballLeague footballLeague { get; set; }
    public int id { get; set; }
    public int league_id { get; set; }
    public string name { get; set; }
    public int season_id { get; set; }
    public int team_id { get; set; }
    public string TeamDetails { get; set; }
}

public class footballLeague
{
    public footballLeague();

    public virtual ICollection<footballFeedUpdate> footballFeedUpdates { get; set; }
    public virtual ICollection<footballPlayer> footballPlayers { get; set; }
    public virtual ICollection<footballPromotionRelegation> footballPromotionRelegations { get; set; }
    public virtual ICollection<footballTeam> footballTeams { get; set; }
    public bool? groups { get; set; }
    public int league_id { get; set; }
    public string name { get; set; }
}

Колонки SQL

  • Я бы
  • team_id
  • league_id
  • season_id
  • имя
  • тренер
  • TeamDetails
  • 0
    В качестве теста вы можете удалить оператор использования. Подобные вещи почти всегда связаны с тем, что запрашиваемый объект находится в распоряжении. Хотя вы решаете с помощью .ToList (), и если бы это было не так, вы бы подумали, что, по крайней мере, получите ошибку.
  • 1
    В качестве дополнительного теста, можете ли вы просто вернуть коллекцию teams.name по вашему выбору, чтобы увидеть, является ли это свойство для команд, которые не могут быть сериализованы.
Показать ещё 16 комментариев
Теги:
asp.net-mvc
asp.net-mvc-4

1 ответ

2
Лучший ответ

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

        var teamList = (from teams in sdb.footballTeams
            orderby teams.name ascending
            where teams.league_id == leagueId
            select new
            {
             id = teams.id,
             team_id = teams.team_id,
             league_id = teams.league_id,
             season_id = teams.season_id,
             name = teams.name,
             coach = teams.coach,
             TeamDetails = teams.TeamDetails
            }).ToList();

        return Json(teamList, JsonRequestBehavior.AllowGet);
  • 0
    это сработало! ти!
  • 0
    Пожалуйста! Рад, что смог помочь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню