c# - 在标记为 APIController 的控制器上使用分页时返回不支持的媒体类型
问题描述
将分页添加到 API 控制器后,我现在收到带有不受支持的媒体类型的 json 错误。
我正在使用 ASP.NET Core 2.2。我可以通过注释掉控制器上的 [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"
}
解决方案
尝试将您的代码更改为此
[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 取决于您提交的对象
推荐阅读
- android - 我正在尝试将我的 APK 上传到 Playstore,但它无法正常工作...... :(
- c++ - 绕行 ShellExecuteEx 的问题,有什么想法吗?
- swift - 在自动续订订阅中检查真实性时推荐使用的逻辑是什么
- c# - 如何获取特定进程连接的 IP 地址?(C#)
- azure - Azure expressroute 和 VPN 与第三方 NVA
- javascript - 如何在对象中创建表头键行?
- variables - Java 从文本文件中读取变量编号值并分配给声明的程序变量
- android - 使用 cordova 运行命令行时签署调试 APK 文件
- apache-spark - Spark Pandas_UDF 的序列化错误
- java - 一行 Java 字符串随机排列