如何修复来自 HTTP Post 方法的验证错误

How to fix the Validation Error from HTTP Post method

我已经使用 asp.net 核心 5 的默认 Web api 模板代码创建了一个项目 <TargetFramework>net5.0</TargetFramework> 然后我添加了一个方法来测试 WeatherForecastController

中的 post 请求
[HttpPost]
 public ActionResult<string> PostMethod([FromBody]string jsonString)
 {            
     return Ok(jsonString);
 }

如果我删除 [FromBody] 代码工作正常。如果我添加 [FromBody] 并在 body 中键入一些内容,例如来自 swagger 的 asdfasdf,它将失败并出现 400 状态错误

{ "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-78bd11a5cea5244998ade80c059479d0-8cb569e070ca0047-00", "errors": { "$": [ "'a' is an invalid start of a value. Path: $ | LineNumber: 0 | BytePositionInLine: 0." ] } }

无法弄清楚问题出在哪里!有人能解释一下是什么原因造成的吗,如果你能指出一些资源来帮助我理解这个验证是如何完成的,那就太好了。这个简单的代码这里没有做数据注释。

Body 招摇!! :)

提前致谢 穆尔蒂

您的正文不是字符串类型,请添加"",改为

"xxxxx"

测试结果: