微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。