Я пытаюсь сделать AJAX-вызов (Javascript), чтобы создать IList
, созданный в методе Controller.
index.js:
function getList() {
$.ajax({
url: myUrl,
type: "GET",
dataType: "json",
success: function (response) {
if (response) {
//do sth
}
},
error: function (response) {
alert("error"); //always error
console.log(response); //object with just default functions
}
});
}
MyController.cs:
public IList<SomeItem> loadList()
{
var items = db.SomeItemSet.Include(item => item.Sth).ToList();
IList<SomeItem> resultList = new List<SomeItem>();
for (int i = 0; i < items.Count(); i++)
{
//if(condition)
resultList.Add(items[i]);
}
return resultList;
}
public JsonResult loadListJson()
{
return Json(new { response = loadList() }, JsonRequestBehavior.AllowGet);
}
Точка останова в методе Controller показывает мне, что он выполняется. Список не является нулевым.
Я также пытался объявить метод как результат действия (вернуть json без jsonreqbehaviour) и выполнить тип: POST в вызове ajax. Как вы думаете, что может потерпеть неудачу здесь?
Панель отладки сети показывает код
302: найдено
(но не 200: ОК) при попытке загрузить ListJson.
Исключение:
System.InvalidOperationException: обнаружена циклическая ссылка
при сериализации объекта типа
'System.Data.Entity.DynamicProxies.SomeItem_9D ..'. в
System.Web.Script.Serialization.JavaScriptSerializer.SerializeValueInternal (Объект
o, StringBuilder sb, глубина Int32, объекты HashtableInUse,
SerializationFormat serializationFormat, MemberInfo currentMember)
в
...