C# FromBody批注无法从请求正文访问字段
我创建了一个.NET核心Web API示例,并提供了一个端点来为自己创建一个新任务。所以终点应该是 发布…基本URL…/me/tasks 方法是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) {
[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.")]