Asp.net mvc 在.net核心web API控制器中从请求体捕获复杂类型JSON
我在控制器中有以下内容,它漂亮地捕获了来自QueryString的Asp.net mvc 在.net核心web API控制器中从请求体捕获复杂类型JSON,asp.net-mvc,asp.net-core,asp.net-web-api,apache-kafka,confluent-platform,Asp.net Mvc,Asp.net Core,Asp.net Web Api,Apache Kafka,Confluent Platform,我在控制器中有以下内容,它漂亮地捕获了来自QueryString的ProducerConfig设置 [HttpPost("mylink/load/")] public async Task<IActionResult> PostMessageAsync(CancellationToken cancellationToken, [FromQuery] ProducerConfig producerConfigs) 但由于400个错误请求而失败 响应
ProducerConfig
设置
[HttpPost("mylink/load/")]
public async Task<IActionResult> PostMessageAsync(CancellationToken cancellationToken, [FromQuery] ProducerConfig producerConfigs)
但由于400个错误请求而失败
响应
{"type":"https://tools.ietf.org/html/rfc7231#section-6.5.1","title":"One or more validation errors occurred.","status":400,"traceId":"|246f628d-4624827bfa8633b1.","errors":{"$":["The JSON value could not be converted to Confluent.Kafka.ProducerConfig. Path: $ | LineNumber: 0 | BytePositionInLine: 1."]}}
更新日期2007年23月 {“类型”:https://tools.ietf.org/html/rfc7231#section-6.5.1“标题”:“一” 一个或多个验证错误 已发生。“,“状态”:400,“traceId”:“| 246f628d-4624827bfa8633b1。”,“错误”:{“$”:[“该 无法将JSON值转换为Confluent.Kafka.ProducerConfig。 路径:$|行号:0 | BytePositionLine:1。“]} 我以前遇到过这种情况。您可以尝试安装
Newtonsoft.JSON
软件包
Install Microsoft.AspNetCore.Mvc.NewtonsoftJson package.
在startup.cs中添加
services.AddControllers().AddNewtonsoftJson();
如果使用
[FromBody]
Get
不发送表单正文,它只请求URL
。在视图中使用
并将其发布到控制器方法,该方法需要使用HttpPost
进行修饰
控制器代码
调试截图
邮递员截图
Hi,@Saher,你在使用[FromBody]时设置了PostMessageAsync HttpPost吗?这是一个帖子,所以我不知道为什么会这样。我最终使用了另一个类并将属性转换为
ProducerConfig
我看不到您的ProducerConfig模型。从响应中,您应该检查Confluent.Kafka.ProducerConfig.Install Newtonsoft.JSON包中的属性类型或其验证,以自动转换。
Install Microsoft.AspNetCore.Mvc.NewtonsoftJson package.
services.AddControllers().AddNewtonsoftJson();
[HttpPost("mylink/load/")]
public IActionResult PostMessageAsync(CancellationToken cancellationToken, [FromBody] ProducerConfig producerConfigs)
{
return Json(producerConfigs);
}