首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

WF4.0 實戰(十二):ASP.NET MVC 2.0 整合 WF4 狀態機實作多步驟註冊流程

     編輯:關於.NET

結合 ASP.NET MVC 2 與 WF4 狀態機,實作四步驟使用者註冊 (個人資訊 → 職位資訊 → 學歷資訊 → 聯絡資訊),支援 Next/Back 導航。

狀態機流程圖

註冊流程圖 WF4 狀態機設計器

介面展示

步驟一:個人資訊 步驟二:職位資訊 步驟三:學歷資訊 步驟四:聯絡資訊 步驟五:完成

實作關鍵

Model 驗證屬性

public class User
{
    [Required(ErrorMessage="姓名不能為空")]
    [StringLength(20, ErrorMessage="姓名長度不能超過20")]
    public string Name { get; set; }
    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(@"...", ErrorMessage="郵件格式不正確")]
    public string Email { get; set; }
    public int? Mobile { get; set; }
}

Controller 狀態機驅動

public class UserController : Controller
{
    static WorkflowUtil wrkFlw = null;
    string page = "Step1";
    public User userObj;

    public ActionResult Process(string nextButton, string backButton)
    {
        if (wrkFlw == null) wrkFlw = new WorkflowUtil();
        if (nextButton != null)
        {
            page = wrkFlw.RunWorkflow("Next");
            return View(page, userObj);
        }
        else if (backButton != null)
        {
            ModelState.Clear();
            page = wrkFlw.RunWorkflow("Prev");
            return View(page, userObj);
        }
        return View(page, userObj);
    }

    protected override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        userObj = (User)TempData["User"] ?? new User();
        TryUpdateModel(userObj);
        if (TempData["CurrentPage"] != null) page = TempData["CurrentPage"].ToString();
    }

    protected override void OnResultExecuted(ResultExecutedContext filterContext)
    {
        TempData["User"] = userObj;
        TempData["CurrentPage"] = page;
    }
}

狀態機轉換設定

Step1 狀態設定 Step1 轉換條件

原始碼:mvc.rar

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved