Задать вопрос

Используя метод return Json() на клиенте в success function(data) undefined. Как исправить?

Проект на asp.net core, web api 2.

Method:

В базе приблизительно 600 товаров. Выборка по Linq вытаскивает товары, проверял это в дебаггере.
[HttpPost("ConfectionsJsonResult")]
        public JsonResult ConfectionsJsonResult()
        {
            IEnumerable<Products> confections = DbNorthWind.Products.Where(p => p.CategoryId == 3);

            return Json(confections);
        }


Клиент. Результат ( в комментариях ):

Свойство в Json object указано правильно ( ProductName, как название столбца в базе ).

$.getJSON({
        type: 'POST',
        dataType: 'json',
        contentType: 'application/JSON',
        url: '/api/Product/ConfectionsJsonResult',
        success: function (data) {

            var results = $("#ConfectionsList");

            alert(data); //[object Object],[object Object],[object Object],[object Object],[object Object],...
            alert(data[0].ProductName); //undefined


-----------------------------------------------------------------------------------------------------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-----------------------------------------------------------------------------------------------------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

А так выглядит рабочий код, но меня попросили убрать "var JsonConfections = JsonConvert.SerializeObject(confections);", так как это нагружает систему.

[HttpPost("ConfectionsJsonResult")]
        public JsonResult ConfectionsJsonResult()
        {

            var confections = DbNorthWind.Products.Where(p => p.CategoryId == 3);

            var JsonConfections = JsonConvert.SerializeObject(confections);

            return Json(JsonConfections );
        }


На клиенте jQuery.parseJSON(data) в success function и в таком случае работает.
  • Вопрос задан
  • 179 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 2
@kttotto
пофиг на чем писать
Сделайте запрос к своему api в строке браузера или через postman. Если придет нормальный json, значит дело в запросе ajax, в его настройках, если нет - значит не сериализуется объект в json.
Ответ написан
al_gon
@al_gon
С большой буквы p[P]roductName ?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы