c# - ASP.NET MVC 4 API 的端点没有响应

标签 c# asp.net-mvc-4 entity-framework-6

我是 ASP.NET MVC4 的新手,我遇到了无法解决的问题。

我有一个简单的 GET 端点,我想返回所有 prestations

当我尝试到达此端点时,我没有收到任何响应,甚至没有超时。我的 API 在其他端点上运行良好。

这是与此端点相关的方法中的代码:

[Route("api/Prestations")]
// GET: api/Prestations
/// <summary>
/// Liste de toutes les prestations
/// </summary>
/// <returns></returns>
[ResponseType(typeof(List<Prestation>))]
public List<Prestation> GetPrestations()
{
    return db.Prestations.ToList();
}

我就是不明白为什么这不起作用。

一些帮助将不胜感激。

谢谢!

最佳答案

根据这篇文章Handling Larger JSON String Values in .NET and Avoiding Exceptions您可以尝试通过更改 web.config 来增加返回的 JSON 字符串的大小:

<configuration>  
   <system.web.extensions>
       <scripting>
           <webServices>
               <jsonSerialization maxJsonLength="86753090" />
           </webServices>
       </scripting>
   </system.web.extensions>
</configuration> 

您也可以尝试使用 Newtonsoft.Json 序列化结果并作为内容返回以查看它是否有效。

[ResponseType(typeof(List<Prestation>))]
public ActionResult GetPrestations()
{
    var presentations = db.Prestations.ToList();
    return Content(JsonConvert.Seriazlize(presentations), "application/json");
}

但通常您不会希望将整个表中的数据返回给客户端,因为它可能很大并且包含数百万条记录。所以你宁愿实现分页:

[ResponseType(typeof(List<Prestation>))]
public List<Prestation> GetPrestations(int skip = 0, int take = 100)
{
    return db.Prestations.OrderBy(p => p.IdPrestation).Skip(skip).Take(take).ToList();
}

关于c# - ASP.NET MVC 4 API 的端点没有响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54830101/

相关文章:

c# - Entity Framework 中的多对多关系 - 结果为 “An entity object cannot be referenced by multiple instances of IEntityChangeTracker”

c# - 试图以访问权限禁止的方式访问套接字

c# - 如何使用 EPPlus 在单元格内创建链接

c# - 仅当 Session 不存在时才创建列表

asp.net-mvc-4 - ASP.net MVC4 路由

entity-framework-6 - EF.BulkInsert 和 Glimpse - 不能很好地配合

entity-framework - 如何在 Entity Framework 中映射双重相关对象,即在相同实体之间定义两个 FK

entity-framework - EntityFramework.IBM.DB2 无法连接到 db2

c# - 这是对 goto 的明确使用吗?

angularjs - 从 AngularJs http web api 请求重定向到 Identity Server 登录页面