2017-02-10 3 views
0

В моем jquery я вызываю функцию $.ajax(), и у меня нет никаких проблем с этим. Моя проблема заключается в части успеха, где я хочу быть в состоянии сделать что-то вроде следующего:Как вернуть Json Список объектов из контроллера

$.ajax('/Home/GetData/' + id, // request url 
{ 
    contentType: "application/json; charset=utf-8", 
    async: true, 
    dataType: 'json', 
    type: "POST", 
    succes: function (response) { // success callback function 
     alert("OK"); 
    }, 
    error: function(data) { 
     alert("Dynamic content load failed."); 
    } 
}); 

и мой контроллер:

[HttpPost] 
public JsonResult GetData(int Id) 
{ 
    var results = (from subCategory in _db.SubCategories 
    where subCategory.CategoryId == Id 
    select subCategory).ToList(); 

    return Json(new { Response = results } , JsonRequestBehavior.AllowGet); 
} 

Я получил сообщение об ошибке всегда. Как я могу получить список объектов с моего контроллера и обрабатывать их в представлении.

+1

какая ошибка? 'GET' или' POST'? Typo 'succes'? – EdSF

ответ

1
I solved my problem with this.. 

public ActionResult GetData(int Id) 
    { 
     var results = (from subCategory in _db.SubCategories 
      where subCategory.CategoryId == Id 
      select subCategory).ToList(); 

     var list = JsonConvert.SerializeObject(results, 
      Formatting.None, 
      new JsonSerializerSettings() 
      { 
       ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore 
      }); 

     return Content(list, "application/json"); 
    } 
0

Ваш метод GetData() - это POST, и вы возвращаете JsonRequestBehavior.AllowGet, он не должен писать там. Вы должны изменить в этом

return Json(new { Response = results } , JsonRequestBehavior.AllowGet); 

Попробуйте это:

[HttpPost] 
public JsonResult GetData(int Id) 
{ 
    var results = (from subCategory in _db.SubCategories 
    where subCategory.CategoryId == Id 
    select subCategory).ToList(); 

return Json(results); 
} 
+0

Я пробовал, но это не работает. –

+0

Какая у вас ошибка? –

+0

Запрос на ошибку всегда –

Смежные вопросы