Проект на 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 и в таком случае работает.