簡體   English   中英

Web api asp.net中的返回值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM