2012-03-28 72 views
0

我有一個用戶控件,它只在我的應用程序中的每個.aspx頁面上顯示客戶信息。該用戶控件包含用於客戶信息的公共屬性,這些屬性是通過.aspx頁面(比如page1.aspx)設置的OnLoad事件,並在該用戶控件中顯示信息。現在從這個page1.aspx重定向到page2.aspx,但無法在page2.aspx usercontrol中顯示信息(這些值在回發後丟失)。我可以通過在每個控制權中使用會話來維護用戶控件的屬性狀態,並且可以在所有頁面中訪問,但會話會是昂貴的方式。請給我另一個更好的解決方案,以便我可以在回發期間保持用戶控件屬性值。在回發中維護用戶控件的公共屬性狀態

在此先感謝...

回答

0

的信息不回發丟失的Page2.aspx從Page1.aspx的

做一個重定向

有後得到一個單獨的GET請求低於方法,使您可以做狀態管理

  1. 會話狀態
  2. 應用程序狀態
  3. 視圖狀態
  4. 餅乾
  5. 查詢字符串
  6. HTML的Web存儲

會話狀態是什麼似乎是爲您的方案的合理選擇,隨着應用程序的狀態會影響到的所有數據都記錄在誰的用戶。一旦我們做了重定向,Viewstate將會丟失。對於cookie,存在大小限制問題,您需要清除存儲在cookie中的數據。此外,你應該加密存儲在那裏的數據。查詢字符串很容易被篡改&不可靠。 HTML網絡存儲只適用於最新的瀏覽器,因此瀏覽器的兼容性會成爲問題。

0

另一個可能的答案 - 你可以使用CrossPagePostback。這允許Page2自動檢測從Page1傳遞的數據。您必須在頁面的加載事件上執行此操作。

重定向將始終帶您到另一個頁面,並且這將始終失去附加到第一頁的任何狀態。您可以像這樣維護狀態的唯一方法是不使用Web應用程序!

0

將用戶信息保存在會話中並儘可能少地保存在cookie中永遠不是一個好主意。這兩者都不安全,因爲你可以看到有一些國家行李很少證明它的使用。

我建議回到繪圖板並設計一個解決方案,將信息顯式保存在服務器上的數據庫中;即使記錄在交易結束時被清除。觀察這張表,你會驚訝地發現有多少會話被放棄,從未到達交易的「官方」端。

相關問題