技术开发 频道

ASP.NET MVC实战:实现WF4注册Model验证

  第三步:在方法Process上选择添加视图,如下图选择:

1
 

  如此共生成五个view页面:step1.step2,step3,step4,step5,Final。

  第四步:设计状态机工作流。这里只演示step1的设置,如下图:

1

1

 

  将一个用户的注册分成了四步,而这四个步骤都是在完善一个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");        
}  
}

  

0
相关文章