C# FromBody批注无法从请求正文访问字段

C# FromBody批注无法从请求正文访问字段,c#,.net-core,asp.net-core-webapi,C#,.net Core,Asp.net Core Webapi,我创建了一个.NET核心Web API示例,并提供了一个端点来为自己创建一个新任务。所以终点应该是 发布…基本URL…/me/tasks 方法是 [HttpPost("tasks")] public async Task<ActionResult<Task>> CreateUserTaskAsync([FromBody] CreateUserTaskBodyDto createUserTaskBodyDto) {

我创建了一个.NET核心Web API示例,并提供了一个端点来为自己创建一个新任务。所以终点应该是

发布…基本URL…/me/tasks

方法是

    [HttpPost("tasks")]
    public async Task<ActionResult<Task>> CreateUserTaskAsync([FromBody] CreateUserTaskBodyDto createUserTaskBodyDto)
    {
        // ...
    }
使用以下主体调用url时

{
    "name": "abc"
}
我得到一个有错误的400分

"errors": {
    "Name": [
        "The field Name must be between 1 and 30."
    ]
}
我还尝试了将name重命名为name。我正在用Postman测试API,这个屏幕截图显示了我的请求设置


有人知道这里出了什么问题或遗漏了什么吗?

根据Microsoft文档 范围属性指定数据字段值的数值范围约束

如果要指定最大和最小字符串长度。看


根据微软文档 范围属性指定数据字段值的数值范围约束

如果要指定最大和最小字符串长度。看

如果您删除

[范围1,30]

属性它应该工作

此外,如果要验证name属性的长度,则应使用StringLenghtAttribute

[StringLength(30, MinimumLength = 1, ErrorMessage = "Name must be between 3 and 50 character in length.")]
如果您删除

[范围1,30]

属性它应该工作

此外,如果要验证name属性的长度,则应使用StringLenghtAttribute

[StringLength(30, MinimumLength = 1, ErrorMessage = "Name must be between 3 and 50 character in length.")]

似乎您正在尝试使用范围属性检查名称长度?这是错误的。范围验证值本身,而不是它的长度该死。。。不知道您似乎正在尝试使用范围属性检查名称长度?这是错误的。范围验证值本身,而不是它的长度该死。。。我不知道
[StringLength(30, MinimumLength = 1, ErrorMessage = "Name must be between 3 and 50 character in length.")]