无法在Web API中序列化响应

我正在使用ASP.NET MVC Web API,出现此错误:


“ ObjectContent`1”类型未能序列化内容类型“ application / xml”的响应主体;charset = utf-8'。


我的控制器是:


public Employee GetEmployees()

{

    Employee employees = db.Employees.First();

    return employees;

}

为什么我收到此错误?


白板的微信
浏览 543回答 3
3回答

一只萌萌小番薯

对我来说,这是循环引用的问题。接受的答案对我不起作用,因为它仅更改JSON格式器的行为,但是当我从浏览器调用服务时,我正在获取XML。为了解决这个问题,我关闭了XML并仅强制返回JSON。在Global.asax文件中,将以下几行放在Application_Start方法的顶部:GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;GlobalConfiguration.Configuration.Formatters.Remove(GlobalConfiguration.Configuration.Formatters.XmlFormatter);现在,仅将返回JSON结果。如果需要XML结果,则需要找到其他解决方案。

忽然笑

在您的global.asax文件中的Application_start()方法中,添加以下行:GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;希望对您有所帮助!
打开App,查看更多内容
随时随地看视频慕课网APP