WEB开发网
开发学院WEB开发ASP.NET ASP.NET MVC中对Model进行分步验证的解决方法 阅读

ASP.NET MVC中对Model进行分步验证的解决方法

 2010-10-09 08:16:27 来源:WEB开发网   
核心提示:在我之前的文章:ASP.NET MVC2.0结合WF4.0实现用户多步注册流程中将一个用户的注册分成了四步,而这四个步骤都是在完善一个Model的信息,ASP.NET MVC中对Model进行分步验证的解决方法,但是又分页面填写信息的,当时我加上ModelState.IsValid这句验证代码的时候,因为刚接触Asp.

在我之前的文章:ASP.NET MVC2.0结合WF4.0实现用户多步注册流程中将一个用户的注册分成了四步,而这四个步骤都是在完善一个Model的信息,但是又分页面填写信息的,当时我加上ModelState.IsValid这句验证代码的时候,根本没法通过验证,因为在注册的前面三步,注册用户的Model信息都没填写完整,而ModelState.IsValid是对一个实体的所有属性进行判断验证的。当时很纠结,因为刚接触Asp.net MVC,故没有找到解决方案。这篇文章将给出解决的办法。看下面需要验证的Model的代码如下:

代码

  public class UserViewModel
  {
    [DisplayName("step")]
    [Required(ErrorMessage = "You must select a step .")]
    public int Step { get; set; }
    //个人信息
    [Required(ErrorMessage = "姓名不能为空")]
    [StringLength(20, ErrorMessage = "姓名长度不能超过20个字符")]
    public string Name { get; set; }
    [RegularExpression(@"120|((1[0-1]|\d)?\d)", ErrorMessage = "年龄格式不对")]
    public int? Age { get; set; }
    //职位信息
    [Required(ErrorMessage = "职位不能为空")]
    public string Post { get; set; }
    public int? Salary { get; set; }
    //学历信息
    [Required(ErrorMessage = "毕业院校不能为空")]
    public string University { get; set; }
    public int? GraduationYear { get; set; }
    //联系信息
    [Required(ErrorMessage = "邮件不能为空")]
    [RegularExpression(@"^[a-z][a-z|0-9|]*([_][a-z|0-9]+)*([.][a-z|" + @"0-9]+([_][a-z|0-9]+)*)?@[a-z][a-z|0-9|]*\.([a-z]" + @"[a-z|0-9]*(\.[a-z][a-z|0-9]*)?)$", ErrorMessage= "邮件格式不正确")]
    public string Email { get; set; }
    public int? Mobile { get; set; }
    public IEnumerable<SelectListItem> StepList { get; set; }
    public UserViewModel()
    {
      var list = new List<SelectListItem>() {
        new SelectListItem { Text = "(Select)" },
        new SelectListItem { Value = "1", Text = "Step1" },
        new SelectListItem { Value = "2", Text = "Step2" },
        new SelectListItem { Value = "3", Text = "Step3" },
        new SelectListItem { Value = "4", Text = "Step4" }
      };
      this.StepList = new SelectList(list, "Value", "Text");
    }

  }

1 2 3 4  下一页

Tags:ASP NET MVC

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接