[英]return value in web api asp.net
我有2个代码:
第一个代码:
public class CategoryController : ApiController
{
Shop_DTBEntities shop_DTBEntities = new Shop_DTBEntities();
public IEnumerable<Category> GetAll_Category()
{
return shop_DTBEntities.Categories.ToList<Category>();
}
}
当我运行上述代码时,它抛出1错误。'ObjectContent 1 The 'ObjectContent
类型未能序列化内容类型为'application / json的响应主体; charset = utf-8'。”之后,我在global.asax中添加了以下新的2行代码:
protected void Application_Start()
{
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
GlobalConfiguration.Configuration.Formatters.Remove(GlobalConfiguration.Configuration.Formatters.XmlFormatter);
GlobalConfiguration.Configure(WebApiConfig.Register);
}
但是如果应用程序带有第二个代码,则抛出上述错误
第二个代码:
public IEnumerable<Category> GetAll_Category()
{
using (Shop_DTBEntities shop_DTBEntities = new Shop_DTBEntities())
{
return shop_DTBEntities.Categories.ToList<Category>();
}
}
您可以通过一种配置设置来修复它。
最好在dbcontext构造函数中使用它
public DbContext() // dbcontext constructor
: base("name=ConnectionStringNameFromWebConfig")
{
this.Configuration.LazyLoadingEnabled = false;
this.Configuration.ProxyCreationEnabled = false;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.