WebAPI 验证数据注释创建运行时异常 [HttpStatusCode 500]

本文关键字:HttpStatusCode 异常 运行时 验证 数据 注释 创建 WebAPI | 更新日期: 2023-09-27 18:35:56

我似乎在谷歌上找不到与这个问题相关的任何内容。
请帮忙!!

场景:
主要是我有一个带有控制器方法的 WebAPI 服务器,该方法需要一个简单的类型作为参数。
该 API 如下所示:

public HttpResponseMessage Foo([FromBody] LoginModel form)
{
     // ...some code
     return this.Request.CreateResponse(HttpStatusCode.OK);
}

LoginType 类如下所示:

public class LoginModel
{
    [Required]
    [EmailAddress(ErrorMessage = "Please have a Email address format")]
    public string Email;
    [Required]
    [StringLength(20, MinimumLength = 6, ErrorMessage = "Password must be between 6 and 20 characters")]
    public string Password;
}

客户端尝试运行 API 方法时出现问题。我传递了一个看起来像这样的
json{ "电子邮件" : "xxx@xxx.com" , "密码" : "oooooo" }

....我收到以下异常

异常消息:
类型'XXXX.Models.Login'上的字段'电子邮件'具有一个或多个验证属性。不支持字段上的验证属性。请考虑改用公共属性进行验证。

当我运行来自提琴手的 api 调用时也会发生同样的情况!!

注意:
如果我删除[必需]等各种属性,它会顺利运行。当属性就位时,客户端调用永远不会到达该方法。

非常感谢帮助!!

WebAPI 验证数据注释创建运行时异常 [HttpStatusCode 500]

就像它说的:

不支持字段上的验证属性。请考虑改用公共属性进行验证。

所以使用属性;

public string Email { get; set; }