WF4.0实战(十二):ASP.NET MVC2.0结合WF4.0实现用户多步注册流程

简介:

这篇文章结合Asp.net MVC和WF4.0实现一个简单的用户多步注册。用户注册分了四步骤。流程图如下:

zhuche

第一步:填写个人信息:

step1

第二步:填写职位信息:

step2

第三步:填写学历信息:

step3

第四步:填写联系信息:

step4

第五步骤:完成

step5

WF4.0状态机如下图:

step6

每一步点击Next跳到下一步,点击Back回到上一步。

实现:

第一步:新建一个ASP.NET MVC Application和一个Workflow的ActivityDesignerLibrary项目,在mvc项目的Model文件夹下添加一个User。代码如下:

复制代码
 1  public   class  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中添加一个控制类,代码如下:

复制代码
 1  public   class  UserController : Controller
 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上选择添加视图,如下图选择:

step11

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

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

step1111

step11122

总结:使用WF完美结合asp.net mvc实现这个功能。





本文转自麒麟博客园博客,原文链接:http://www.cnblogs.com/zhuqil/archive/2010/05/02/ASP-MVC-2-wf-4.html,如需转载请自行联系原作者


相关文章
|
开发框架 .NET 开发者
简化 ASP.NET Core 依赖注入(DI)注册-Scrutor
Scrutor 是一个简化 ASP.NET Core 应用程序中依赖注入(DI)注册过程的开源库,支持自动扫描和注册服务。通过简单的配置,开发者可以轻松地从指定程序集中筛选、注册服务,并设置其生命周期,同时支持服务装饰等高级功能。适用于大型项目,提高代码的可维护性和简洁性。仓库地址:<https://github.com/khellang/Scrutor>
420 5
|
监控 前端开发 API
一款基于 .NET MVC 框架开发、功能全面的MES系统
一款基于 .NET MVC 框架开发、功能全面的MES系统
541 5
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
326 7
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
334 0
|
开发框架 前端开发 .NET
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
274 0
|
开发框架 前端开发 安全
ASP.NET MVC 如何使用 Form Authentication?
ASP.NET MVC 如何使用 Form Authentication?
448 0
|
前端开发 数据安全/隐私保护
net MVC中的模型绑定、验证以及ModelState
net MVC中的模型绑定、验证以及ModelState 模型绑定 模型绑定应该很容易理解,就是传递过来的数据,创建对应的model并把数据赋予model的属性,这样model的字段就有值了。
1875 0
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
565 0
|
存储 开发框架 前端开发
[回馈]ASP.NET Core MVC开发实战之商城系统(五)
经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,banner条,友情链接,降价促销,新品爆款】,商品列表页面,商品详情等功能的开发,今天继续讲解购物车功能开发,仅供学习分享使用,如有不足之处,还请指正。
408 0
|
开发框架 .NET
Asp.Net Core 使用X.PagedList.Mvc.Core分页 & 搜索
Asp.Net Core 使用X.PagedList.Mvc.Core分页 & 搜索
621 0