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,如需转载请自行联系原作者


相关文章
|
4月前
|
监控 前端开发 API
一款基于 .NET MVC 框架开发、功能全面的MES系统
一款基于 .NET MVC 框架开发、功能全面的MES系统
113 5
|
4月前
|
开发框架 搜索推荐 算法
一个包含了 50+ C#/.NET编程技巧实战练习教程
一个包含了 50+ C#/.NET编程技巧实战练习教程
183 18
|
4月前
|
开发框架 .NET 开发者
简化 ASP.NET Core 依赖注入(DI)注册-Scrutor
Scrutor 是一个简化 ASP.NET Core 应用程序中依赖注入(DI)注册过程的开源库,支持自动扫描和注册服务。通过简单的配置,开发者可以轻松地从指定程序集中筛选、注册服务,并设置其生命周期,同时支持服务装饰等高级功能。适用于大型项目,提高代码的可维护性和简洁性。仓库地址:<https://github.com/khellang/Scrutor>
95 5
|
5月前
|
消息中间件 开发框架 .NET
.NET 8 强大功能 IHostedService 与 BackgroundService 实战
【11月更文挑战第7天】本文介绍了 ASP.NET Core 中的 `IHostedService` 和 `BackgroundService` 接口及其用途。`IHostedService` 定义了 `StartAsync` 和 `StopAsync` 方法,用于在应用启动和停止时执行异步操作,适用于资源初始化和清理等任务。`BackgroundService` 是 `IHostedService` 的抽象实现,简化了后台任务的编写,通过 `ExecuteAsync` 方法实现长时间运行的任务逻辑。文章还提供了创建和注册这两个服务的实战步骤,帮助开发者在实际项目中应用这些功能。
211 0
|
6月前
|
开发框架 NoSQL MongoDB
C#/.NET/.NET Core开发实战教程集合
C#/.NET/.NET Core开发实战教程集合
134 1
|
7月前
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
145 0
|
7月前
|
SQL 关系型数据库 数据库
七天.NET 8操作SQLite入门到实战详细教程(选型、开发、发布、部署)
七天.NET 8操作SQLite入门到实战详细教程(选型、开发、发布、部署)
190 2
|
7月前
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
118 7
|
8月前
|
API 开发者 Java
API 版本控制不再难!Spring 框架带你玩转多样化的版本管理策略,轻松应对升级挑战!
【8月更文挑战第31天】在开发RESTful服务时,为解决向后兼容性问题,常需进行API版本控制。本文以Spring框架为例,探讨四种版本控制策略:URL版本控制、请求头版本控制、查询参数版本控制及媒体类型版本控制,并提供示例代码。此外,还介绍了通过自定义注解与过滤器实现更灵活的版本控制方案,帮助开发者根据项目需求选择最适合的方法,确保API演化的管理和客户端使用的稳定与兼容。
364 0
|
8月前
|
开发框架 缓存 前端开发
实战.NET Framework 迁移到 .NET 5/6
从.NET Framework 迁移到.NET 5/6 是一次重要的技术革新,涵盖开发环境与应用架构的全面升级。本文通过具体案例详细解析迁移流程,包括评估现有应用、利用.NET Portability Analyzer 工具识别可移植代码、创建新项目、逐步迁移代码及处理依赖项更新等关键步骤。特别关注命名空间调整、JSON 序列化工具更换及数据库访问层重构等内容,旨在帮助开发者掌握最佳实践,确保迁移过程平稳高效,同时提升应用性能与可维护性。
226 2

热门文章

最新文章