У меня такая проблема.Я хочу вернуть объект JSON из контроллера для просмотра после AJAX-запроса.Код JS:
$.ajax(
{
url : '/Order/GetArticleForBasicPosition',
data : article,
type : 'POST',
success : function (data)
{
alert("yyyyyyy");
},
error:function (xhr, ajaxOptions, thrownError)
{
alert(xhr.status);
alert(thrownError);
}
});
И контроллер:
[HttpPost]
public JsonResult GetArticleForBasicPosition(string article)
{
Article articleInfo = _service.GetArticleForBasicPosition(article);
return Json(articleInfo);
}
И я получаю 500 Внутренняя ошибка сервера.Я отлаживал контроллер и вижу, что он получает правильный параметр «article», а сервисный метод возвращает правильный объект.Я попробовал оба типа запросов GET и POST.
На самом деле, когда я изменил свой контроллер следующим образом:
[HttpPost]
public JsonResult GetArticleForBasicPosition(string article)
{
var articleInfo = new Article() {GoodsName = "ffff", GoodsPrice = 1234, CatalogueName = "uuuuuuui"};
return Json(articleInfo);
}
все прошло нормально.
Я предполагаю, что причина мояразмер объекта (я использую EntityFramework, а articleInfo имеет много навигационных свойств), но не нашел никого, кто писал бы об этой же проблеме.
Кто-нибудь знает, что является причиной такой проблемы и является ли ее размеробъекта, какова лучшая практика для ее решения?
Спасибо.