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; }
}
没有模型绑定就没有验证,而且由于您没有进行任何模型绑定,因此ModelState永远不会无效。
您需要以某种方式绑定模型,方法是更改方法参数以采用模型类型,或者调用UpdateModel或TryUpdateModel。