【发布时间】:2020-06-25 19:29:18
【问题描述】:
PageResult 响应在通过System.Text.Json(ASP.NET Core 3 默认)序列化时缺少nextPageLink 和count 值,结果如下:
[ApiController]
[Route("api/[controller]")]
public class ValuesController : ControllerBase
{
[HttpGet]
public IActionResult Get()
{
var items = new List<string> { "value" };
var pageResult = new Microsoft.AspNet.OData.PageResult<string>(items, new Uri("http://localhost/foo"), items.Count);
return Ok(pageResult);
}
}
但是当我使用Newtonsoft.Json formatter时,结果是正确的:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers().AddNewtonsoftJson();
}
System.Text.Json 的结果:
[
"value"
]
Newtonsoft.Json 的结果:
{
"items": [
"value"
],
"nextPageLink": "http://localhost/foo",
"count": 1
}
知道这种行为的原因是什么吗?
【问题讨论】:
标签: c# asp.net-core odata system.text.json