这篇文章结合Asp.net MVC和WF4.0实现一个简单的用户多步注册。用户注册分了四步骤。流程图如下:
第一步:填写个人信息:
第二步:填写职位信息:
第三步:填写学历信息:
第四步:填写联系信息:
第五步骤:完成
WF4.0状态机如下图:
每一步点击Next跳到下一步,点击Back回到上一步。
实现:
第一步:新建一个ASP.NET MVC Application和一个Workflow的ActivityDesignerLibrary项目,在mvc项目的Model文件夹下添加一个User。代码如下:
2 { // 个人信息
3 [Required(ErrorMessage = " 姓名不能为空 " )]
4 [StringLength( 20 , ErrorMessage = " 姓名长度不能超过20个字符 " )]
5 public string Name { get ; set ; }
6 public int ? Age { get ; set ; }
7 // 职位信息
8 [Required(ErrorMessage = " 职位不能为空 " )]
9 public string Post { get ; set ; }
10 public int ? Salary { get ; set ; }
11 // 学历信息
12 [Required(ErrorMessage = " 毕业院校不能为空 " )]
13 public string University { get ; set ; }
14 public int ? GraduationYear { get ; set ; }
15 // 联系信息
16 [Required(ErrorMessage = " 邮件不能为空 " )]
17 [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 = " 邮件格式不正确 " )]
18 public string Email { get ; set ; }
19 public int ? Mobile { get ; set ; }
20 }
21
第二步:在Controllers中添加一个控制类,代码如下:
2 {
3 //
4 // GET: /User/
5 #region Declarations
6 static WorkflowUtil wrkFlw = null ;
7 string page = " Step1 " ;
8 public User userObj;
9 #endregion
10 #region Process action method
11 public ActionResult Process( string nextButton, string backButton)
12 {
13 if (wrkFlw == null )
14 {
15 wrkFlw = new WorkflowUtil();
16 }
17 if ((nextButton != null ))
18 {
19 page = wrkFlw.RunWorkflow( " Next " );
20 return View(page, userObj);
21 }
22 else if (backButton != null )
23 {
24 ModelState.Clear();
25 page = wrkFlw.RunWorkflow( " Prev " );
26 return View(page, userObj);
27 }
28 else
29 return View(page, userObj);
30 }
31 #endregion
32 #region Events
33 protected override void OnActionExecuting(ActionExecutingContext filterContext)
34 {
35 userObj = (User)TempData[ " User " ];
36 if (userObj == null ) userObj = new User();
37 TryUpdateModel(userObj);
38 if (TempData[ " CurrentPage " ] != null ) page = TempData[ " CurrentPage " ].ToString();
39 }
40 protected override void OnResultExecuted(ResultExecutedContext filterContext)
41 {
42 TempData[ " User " ] = userObj;
43 TempData[ " CurrentPage " ] = page;
44 }
45 #endregion
46 public ActionResult Index()
47 {
48 return View();
49 }
50 }
第三步:在方法Process上选择添加视图,如下图选择:
如此共生成五个view页面:step1.step2,step3,step4,step5,Final。
第四步:设计状态机工作流。这里只演示step1的设置,如下图:
总结:使用WF完美结合asp.net mvc实现这个功能。
(全文完)
以下为广告部分
您部署的HTTPS网站安全吗?
如果您想看下您的网站HTTPS部署的是否安全,花1分钟时间来 myssl.com 检测以下吧。让您的HTTPS网站变得更安全!
快速了解HTTPS网站安全情况。
安全评级(A+、A、A-...)、行业合规检测、证书信息查看、证书链信息以及补完、服务器套件信息、证书兼容性检测等。
安装部署SSL证书变得更方便。
SSL证书内容查看、SSL证书格式转换、CSR在线生成、SSL私钥加解密、CAA检测等。
让服务器远离SSL证书漏洞侵扰
TLS ROBOT漏洞检测、心血漏洞检测、FREAK Attack漏洞检测、SSL Poodle漏洞检测、CCS注入漏洞检测。