【发布时间】:2019-09-07 18:34:02
【问题描述】:
我正在尝试使用 asp.net core 2.2 和 Microsoft.AspNetCore.OData 7.1.0 实现分页,配置如下:
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddOData();
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseMvc(b =>
{
b.EnableDependencyInjection();
});
}
}
为此,我有一个测试控制器:
[Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
{
[HttpGet]
[EnableQuery(PageSize = 5)]
public IQueryable<int> Get()
{
return new int[] { 1,2,3,4,5,6,7,8,9,10 }.AsQueryable();
}
}
调用端点时,我希望得到如下响应:
{
"@odata.context":...,
"value":[1,2,3,4,5],
"@odata.nextLink":...
}
但我只得到:
[1,2,3,4,5]
那么我如何获得这些额外的@odata 属性?
【问题讨论】:
-
您是否尝试过从
ODataController派生控制器? -
@IlyaChumakov 它没有帮助,但我终于找到了解决方案。
标签: c# asp.net-core pagination odata asp.net-core-2.0