为了账号安全,请及时绑定邮箱和手机立即绑定

无法在Web API中序列化响应

无法在Web API中序列化响应

C#
白板的微信 2019-12-20 10:06:51
我正在使用ASP.NET MVC Web API,出现此错误:“ ObjectContent`1”类型未能序列化内容类型“ application / xml”的响应主体;charset = utf-8'。我的控制器是:public Employee GetEmployees(){    Employee employees = db.Employees.First();    return employees;}为什么我收到此错误?
查看完整描述

3 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

对我来说,这是循环引用的问题。


接受的答案对我不起作用,因为它仅更改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结果,则需要找到其他解决方案。


查看完整回答
反对 回复 2019-12-20
?
忽然笑

TA贡献1806条经验 获得超5个赞

在您的global.asax文件中的Application_start()方法中,添加以下行:


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

希望对您有所帮助!


查看完整回答
反对 回复 2019-12-20
  • 3 回答
  • 0 关注
  • 542 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信