public ActionResult Stamp()
        {
            control = (TrackOrderControl)Session["TrackOrderControl"];     // get the control object from the Session Object.
            ViewData["OrderState"] = control.StampOrder_1();               // 作法一:使用 Switch-Case 處理訂單狀態
            //ViewData["OrderState"] = control.StampOrder_2();               // 作法二:使用 State Pattern 處理訂單狀態

            return(View("Index"));
        }
 // GET: State
 public ActionResult Index()
 {
     if (Session["TrackOrderControl"] == null)
     {
         control = new TrackOrderControl();          // new a domain control instance.
         Session["TrackOrderControl"] = control;
     }
     else
     {
         Session["TrackOrderControl"] = control;     // hold the control object as stateful.
     }
     return(View());
 }