在标有Controller的APIController上使用分页时,返回了不受支持的媒体类型

时间:2019-05-30 07:46:54

标签: asp.net-core

在将分页添加到API控制器后,我现在收到不支持的媒体类型的json错误。

我正在使用ASP.NET Core 2.2。我可以通过注释掉Controller上的[ApiController]属性来解决此问题,但这显然不是首选,我想了解潜在的问题是什么。

public async Task<ActionResult<BlogPost>> Get(ResourceParameters resourceParameters)
{
    return Ok(await _repository.GetBlogPostsAsync(resourceParameters));
}
// The problem is suppressed by commenting out the ApiController attribute
[Route("api/[controller]")]
//[ApiController]
public class BlogController : ControllerBase
..

响应

// 20190530081824
// https://localhost:5001/api/blog
{
    "type": "https://tools.ietf.org/html/rfc7231#section-6.5.13",
    "title": "Unsupported Media Type",
    "status": 415,
    "traceId": "0HLN4PRV4JD94:00000001"
}

1 个答案:

答案 0 :(得分:0)

尝试将您的代码更改为此

[Route("api/[controller]/")]
[ApiController]
public class BlogController : Controller

public async Task<ActionResult<BlogPost>> Get([FromQuery] ResourceParameters resourceParameters) 
{ 
    return Ok(await _repository.GetBlogPostsAsync(resourceParameters)); 
}

请确保FromQuery或FromBody取决于您提交的对象