Muhammad Shan Ответов: 3

Как вернуть данные json из ASP.NET контроллер MVC?


моя модель:

 public class Cls{
    public int Id {get;set;}
    public string name {get;set;}
}


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

public JsonResult jsonClassList()
       {
           var classes = from c in db.Cls
                         select c;
           return Json(new { Classes = classes }, JsonRequestBehavior.AllowGet);
       }


Что я уже пробовал:

Я хочу получить список данных в формате json?
{
  Classes:
  [
  {
    Id : 1,
    name: one
  },
  {
    Id : 2,
    name: two
  },
  {
    Id : 3,
    name: three
  }
 ]
}

Suvendu Shekhar Giri

Какой результат JSON вы получаете?

Muhammad Shan

Я получаю эту ошибку:

Циклическая ссылка была обнаружена при сериализации объекта типа System. Data. Entity.Динамические процессы.Clas_9509CA648588A0D8B4283C10ABF34a411c9eafc459e3e2d68eda7b7326f2b1b1'.

Karthik_Mahalingam

это не допустимый json.

Muhammad Shan

{ Занятия:
[
{
Id: 1,
имя: один
},
{
Id: 2,
имя: два
},
{
Id: 3,
название: Три
}
]
}

Karthik_Mahalingam

вы хотите получить этот результат?

Muhammad Shan

Получаю эту ошибку:
Циклическая ссылка была обнаружена при сериализации объекта типа System. Data. Entity.Динамические процессы.Clas_9509CA648588A0D8B4283C10ABF34a411c9eafc459e3e2d68eda7b7326f2b1b1'.

Beginner Luck

Это то же самое, что и обычный linq вместо josn. Я напишу, если все еще не уверен

Muhammad Shan

Plz post, так что я могу решить свою проблему

Muhammad Shan

Получаю эту ошибку:
Циклическая ссылка была обнаружена при сериализации объекта типа System. Data. Entity.Динамические процессы.Clas_9509CA648588A0D8B4283C10ABF34a411c9eafc459e3e2d68eda7b7326f2b1b1'.

Можете ли вы решить эту проблему?

Karthik_Mahalingam

return Json( new { Classes= classes}, JsonRequestBehavior.AllowGet);
это прекрасно работает.. он дает нужный формат

Muhammad Shan

Получаю эту ошибку:
Циклическая ссылка была обнаружена при сериализации объекта типа System. Data. Entity.Динамические процессы.Clas_9509CA648588A0D8B4283C10ABF34a411c9eafc459e3e2d68eda7b7326f2b1b1'.

Можете ли вы решить эту проблему?

3 Ответов

Рейтинг:
23

Karthik_Mahalingam

попробовать это

public JsonResult jsonClassList()
       {
           var classes =   db.Cls.ToList();
           var obj = new { Classes = classes };
           return Json(obj, JsonRequestBehavior.AllowGet);
       }


Рейтинг:
15

F-ES Sitecore

Я не вижу, как код, который вы опубликовали, дал бы вам эту ошибку, поэтому я думаю, что вы сокращаете код и упускаете что-то важное. Если в вашей таблице Cls больше столбцов с идентификатором и именем, попробуйте

public JsonResult jsonClassList()
       {
           var classes = from c in db.Cls
                         select new {id = c.Id, name = c.name};
           return Json(new { Classes = classes }, JsonRequestBehavior.AllowGet);
       }


Рейтинг:
1

Vignesh Mani

Тип JsonResult в MVC[^]

public ActionResult SomeActionMethod() {
return Json(new {foo= "bar", baz= " Blech"});
}