ASP.Net MVC 服务器端中的 DataAnnotations 模型验证被忽略

问题描述

我觉得我在使用 DataAnnotations 遇到的问题中遗漏了一些非常简单的东西,特别是对请求的模型验证,注释被忽略了。我会尽量简写:

在 React 应用程序客户端,Axios 将 JSON 对象发布到控制器 /api/create-account。模型绑定部分在其余代码执行时完美运行,但验证没有,这意味着目前此示例完全依赖客户端验证。

/models/requests 中的模型

CreateAccountRequest.cs


...
public class CreateAccountRequest {
    [required]
    public string Platform { get ; set; }

    [required]
    [MaxLength(40)]
    public string Username { get ; set; }

    ...
}

/controllers/ 中的控制器

SignupController.cs

public class SignupController : Controller { 

//DI etc ...

    [HttpPost]
    public JsonResult CreateAccount(CreateAccountRequest request) {
        if (!ModelState.IsValid) return Json(new ErrorResponse(false,ModelState));
        //...
    }
}

在此示例中,用户名是必需的,但是,如果我使用空值发布到 CreateAccount 端点,它仍将 ModelState.IsValid 显示为 true

其他可能有用的信息 .NET 框架 4.6 .NET MVC 5

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)