【问题标题】:Web Api Get method returns HTTP/1.1 500 Internal Server ErrorWeb Api Get 方法返回 HTTP/1.1 500 Internal Server Error
【发布时间】:2016-03-28 04:18:20
【问题描述】:

我使用实体创建控制器。我的项目中有一些严格的模型,并且对于上下文中的每个模型,“Get 方法”都可以正常工作,但是这个和其他模型一样,没有。

这是简单的代码:

  // GET: api/Proizvodi
        public IQueryable<Proizvodi> GetProizvodi()
        {
            return db.Proizvodi;
        }

我用提琴手测试,这是消息:

{"Message":"发生错误。","ExceptionMessage":"'ObjectContent`1' 类型未能序列化内容类型 'application/json; charset=utf-8' 的响应正文。" ,"ExceptionType":"System.InvalidOperationException","StackTrace":null,"InnerException":{"Message":"发生错误。","ExceptionMessage":"检测到类型为 'System.Data 的自引用循环。 Entity.DynamicProxies.Proizvodi_B322A16527536C491FCFE47A9DC60617BBB3A2AAF1FABD41D99F924F0D8FE589'。路径'[0].JediniceMjere.Proizvodi'。","ExceptionType":"Newtonsoft.Json.JsonSerializationException",...

我知道有同样的问题,我正在寻找答案但找不到。实体框架是否有问题,序列化或其他问题。 ??

也许这有帮助:当我从数据库中删除此模型/类“Proizvodi”的所有记录时,我得到“HTTP/1.1 200 OK”。

【问题讨论】:

标签: c# asp.net json entity-framework asp.net-web-api


【解决方案1】:

将以下内容添加到

Global.asax

HttpConfiguration config = GlobalConfiguration.Configuration;
config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;

【讨论】:

  • 谢谢伙计。这很有帮助:D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-12-08
  • 1970-01-01
  • 2017-02-20
  • 2015-09-15
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多