我正在开发ASP.NET MVC web API,我遇到了这个错误:
'ObjectContent`1‘类型无法序列化内容类型'application/xml;charset=utf-8’的响应正文。
我的控制器是:
public Employee GetEmployees()
{
Employee employees = db.Employees.First();
return employees;
}
为什么我会得到这个错误?
发布于 2013-11-28 04:02:46
对我来说,这是一个循环引用的问题。
被接受的答案对我不起作用,因为它只改变了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结果,则需要找到不同的解决方案。
发布于 2012-10-09 13:46:14
在global.asax文件的Application_start()方法中,添加以下行:
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
我希望这对你有帮助!
发布于 2013-03-29 01:15:58
我也有同样的问题。我解决了这个问题。我将默认构造函数放到了DTO类中。
例如:
public class User
{
public User()
{
}
}
希望它能和你一起工作!
https://stackoverflow.com/questions/12641386
复制相似问题