2010-03-19 32 views
2

我想問一個解決方案。例如,我們有一個頁面。我有一個鏈接到這個頁面的另一個動作。我希望能夠將輸入數據的值保存在頁面上。 例如我去另一個頁面輸入數據並返回。像巫師一樣。但問題是我們可以從不同的頁面採取行動。它需要保存幾種數據類型。在動作之間保存狀態

是否明白? 有什麼建議嗎?

我想有共同的解決辦法....

+0

我們在談論多少數據?你能把它存儲在會話中嗎?或者如果它的表單數據,我知道我看到一個用於保存表單數據的jQuery插件。 – kalpaitch

+0

這不是一個大數據量。約5-10個文本字段和下拉列表值。 – Igor

回答

0

在過去的奇才隊我已經使用Session,因爲它得到沿途建立來存儲數據。

有一點不要忘記,每次使用它時都要驗證會話中存儲的數據。如果不是用戶可以利用後退按鈕來僞造某些場景。例如:

  1. 用戶使用該向導並進入嚮導中的第3步。
  2. 然後,他們轉到另一個不屬於嚮導的頁面。
  3. 然後用戶再次進入嚮導,並且 僅進入嚮導的第2步。
  4. 用戶然後使用後退按鈕去所有 回到他們在步驟3中的原始嚮導 。

在這種情況下,如果發佈會話中的數據將認爲它來自原始嚮導,即使會話中的數據僅反映到用戶第二次訪問嚮導時的第2步。每次有人啓動向導並在每個步驟對其進行驗證時,請使用唯一的密鑰。

希望有幫助,而不是太混亂(這是我打字它)。

另一種方法是通過TempData來保存數據,但每次您需要將其保留並繼續保存以便發回下一步。然後重建它,添加並重復。這可能還有很多工作,但至少你不必擔心發生不同步的事情。

+0

會話不是一個好的解決方案,因爲負載平衡器在Web服務器之前使用。 看起來它需要序列化數據,並保存在隱藏中。 – Igor

+0

是的,你需要使用TempData緩存客戶端,或者如你所說的序列化爲隱藏。 – Kelsey