ASP.NET MVC4服务器端验证

本文关键字:验证 服务器端 MVC4 NET ASP | 更新日期: 2023-09-27 18:29:04

在当前的项目中,我正在尝试获取一个注册表单并通过验证。我对C#和ASP.NET MVC4还很陌生。我正在尝试防止用户被添加到传入Post数据的集合中。该数据无效。这是我的控制器代码,后面是使用System.ComponentModel.DataAnnotations 的规则的User类

如果数据无效,那么我想抛出一个自定义错误(我还没有开始实现它)。

控制器:

[HttpPost]
        public ActionResult Confirm(FormCollection form)
        {
            string firstName = form["textFirstName"];
            string lastName = form["textLastName"];
            string email1 = form["textEmail"];
            string password1 = form["passwordPW1"];
            User newUser = new User { fName = firstName, lName = lastName, email = email1, password = password1 };
            if (ModelState.IsValid)
            {
                _users.Add(newUser);
            }
            return RedirectToAction("Login", "Countdown");
        }

型号

public class User
    {
        [Required]
        [StringLength(50, MinimumLength = 1)]
        public String fName { get; set; }
        [StringLength(50)]
        public String lName { get; set; }
        [Required]
        [RegularExpression(@"^'w+(['.-]?'w+)*@'w+(['.-]?'w+)*('.'w{2,3})+$")]
        public String email { get; set; }
        [Required]
        [StringLength(50, MinimumLength = 4)]
        public String password { get; set; }
    }

ASP.NET MVC4服务器端验证

没有模型绑定就没有验证,而且由于您没有进行任何模型绑定,因此ModelState永远不会无效。

您需要以某种方式绑定模型,方法是更改方法参数以采用模型类型,或者调用UpdateModel或TryUpdateModel。