繁体   English   中英

为什么我的 API 控制器没有在我的 if 语句中捕获错误数据?

[英]Why isn't my API controller catching bad data in my if statement?

我在 my.Net Core API 控制器中有这样的逻辑,用于检查前端发送的错误值:

[HttpPut("{id}")]
public async Task<IActionResult> PutMathCoordinates(MathCoordinates)

if ((MathCoordinates.GraphX == 0) && (MathCoordinates.GraphY == 0))
{
    // send message that data is bad
}

但即便如此,我还是会收到大约 400 个这样的错误:

400 无法将 JSON 值转换为 System.Guid

当前端发送空数据时是这样的:

{problemId: "", mathId: "", graphX: 0, graphY: 0}

为什么我的控制器没有在我的if语句中捕捉到它?

谢谢!

  1. 您对该方法的输入缺少声明,它应该类似于MathCoordinates input ,然后您将其称为input.GraphX
  2. 您正在尝试将 GUID 发布到需要MathCoordinates类型对象的方法。 您需要更改输入参数并根据 GUID 参数自行获取模型,或者发布表示主体的 JSON,以便 JSON 可以自动将 JSON 序列化为模型类型(需要 [FromBody] 输入)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM