2011-08-29 42 views
1

我有一系列的頁面,一個最終用戶必須填寫(複選框),當它們與每個頁面完成我試圖創建的,他們選中的複選框的列表。在系列頁面的結尾處,我想向他們展示他們在確認頁面中選擇的所有內容。我注意到,在請求之間,我在每個頁面上創建的列表<>中的信息不可用於最終確認頁面。我已經嘗試了一些不同的解決方案(私有全局變量)無濟於事。我如何通過ActionResults傳遞數據來完成在確認頁面上顯示所有選定的數據?謝謝。如何在MVC 3中的ActionResults之間傳遞數據?

One potential solution.別人呢?

回答

2

網絡是無狀態的,這意味着你要存儲的東西,如果你想保留它們,以供以後使用。對於任何Web框架都是如此。您需要將每個頁面的結果存儲在某處。爲建設一個嚮導

選項:

  • 存儲所有會話中選擇答案,並繼續建立它一頁一頁。最後的確認會得到會議結果。
  • 將它們存儲在數據庫中。
  • 將結果保存在Cookie中。
  • 商店他們HTML5本地存儲
  • 通過隨身攜帶這些隱藏字段在每一頁上。頁面1將隱藏字段中的頁面1的答案等。
+0

謝謝!非常清楚。 – decompiled

+0

btw你可以使用MVCContrib的Html.Serialize來保持這種方式的對象。它是從某種意義上使用跨頁視圖狀態的一種方式,因此您可以輕鬆將嚮導的視圖模型序列化爲隱藏字段。但請注意,用戶可能會篡改任何隱藏的字段。 –

0

你應該看看here

Initialy你需要保持必要的變量中隱藏字段,並通過所有的請求完全發送模式。

1

您需要保存請求之間的狀態。你可以這樣做:

  1. 查詢字符串參數
  2. 會話狀態
  3. 隱藏字段
  4. DB(如果你想堅持每個請求後的中間選擇)
  5. 本地存儲
  6. 餅乾

還有別的嗎?

我猜,因爲RyanW指出,即它們存儲在會話狀態是通常的方式做到這一點。然而,您可以在一個請求中獲取所有步驟,做一些花哨的JS /將中間結果存儲在本地,並在調查問卷完成後進行最終發佈。

相關問題