【发布时间】:2020-03-07 09:04:24
【问题描述】:
我已经为 REST POST api 端点做了一个控制器,如下
public IActionResult POST([FromBody]Person person)
{
....
}
其中 Person 被定义为
public class Person
{
public string Name {get; set;}
public int Age {get; set;}
}
意味着发布请求能够反序列化这样的输入
{
"Name": "Peter",
"Age": 2
}
没有任何问题...
当我传递类似
的东西时会出现问题{
"Name": "Peter",
"Age": 2,
"Error": 123123123
}
它仍然会创建一个Person,其中前两个已填写..
我想在这里触发一个错误,指出输入格式错误。
我正在存储第一个输入 - 然后使用它根据第一个输入比较下一个输入。 如果它们相同 - 什么都不应该发生。
但是由于最后一个输入包含一个无效字段,但输入创建的实际实例与第一个完全相似 - 我收到一个错误,它们不相等?
我假设 JSON 中的 error 语句以某种方式存储在新实例中?
但是我如何确保在控制器根据 JSON 输入创建实例之前验证输入?
【问题讨论】:
-
你使用核心还是标准mvc项目?
-
@IvanSmyrnov 我正在使用 Core
标签: c# json asp.net-core controller json-schema-validator