2010-05-02 60 views
1

什麼是最終的解決方法)在ASP.NET MVC應用程序中堅持'Conversational state'的最佳實踐是什麼? ?

期望中的場景是:

  1. 多步的形式。
  2. 如果一個頁面上有標籤,標籤應該堅持自己的'的視圖狀態」
  3. 無論導航用戶選擇
  4. ,它應該不會影響(更恰當,bother)會話狀態管理。

這些只是幾個方面,但我覺得它們實際上有很大的相關性。

+0

什麼是「會話狀態」? – Pierreten 2010-05-02 05:44:11

+0

這是有關當前用戶和Web應用程序對話的信息。我的意思是,這包括任何東西:從用戶的身份,通過當前交互的有效模式,到視覺元素的期望狀態(在ASP.NET WebForms中稱爲viewstate) – Bubba88 2010-05-02 05:47:53

回答

1

我曾經在Asp.Net MVC中使用過Wizard類型的窗體,在這種情況下做的最好的事情是使用Model/ModelBinding來跟蹤窗體輸入。

我們可以創建一個控制器操作鏈(對於每個步驟),每個步驟的輸出模型用作下一個步驟(操作)的輸入模型。

例如,如果我們有三個步驟來創建用戶。然後UserController可以爲每個步驟執行操作。

public ActionResult Step1() 
{ 
    User user = new User(); 
    return View(user); 
} 

[Post] 
public ActionResult Step1(User user) 
    { 
     //perform business validation 
     RedirectToAction<UserController>(u => Step2(user)); 

    } 

之後Step2操作將接管來自Step1的修改後的用戶並可以呈現其自己的視圖等等。

1

不確定「解決方法」,但你有沒有考慮過使用AJAX和jQuery?根據您列出的要求,兩者都是適當的。

+0

希望我從不使用AJAX和JavaScript,但使用+1提及standart fallback選項:) – Bubba88 2010-05-08 06:54:24