我想知道什麼是在多頁面之間傳遞大量值的最佳方式。我正在考慮使用context.Items []或Session []將值保存到數據庫。我不確定什麼是最好的方法。我傳遞的可能是大約40個變量。這將在結帳過程中進行,因此應該在用戶生命週期中持續保存。用戶在第一次輸入後不會更改這些值。價值將像帳單地址,名字和姓氏等在asp.net頁面之間傳遞數據
回答
會話可能是最有效的。但是,如果會話因任何其他原因超時或丟失,則任何條目都將丟失。所以如果持久性更重要,你可能想將它存儲在數據庫中。
也許Cross-Page Posting選項?
另一個選項可能是Server.Transfer
方法連同Context.Items
或Form
屬性。
在這種情況下,任何發佈的表單變量和查詢字符串參數都可用於第二個/第三個/ etc。頁面也是如此。
但是,瀏覽器中的URL將不會改變,直到你真的轉移到另一個頁面。
有一點要注意的是,如果 第一頁寫的東西給 響應緩衝區,而你沒有明確 它,然後從第二 頁的輸出會被追加到輸出第一個是 。這通常是 奇怪行爲的原因,看起來 頁面正在返回兩個不同的頁面。 此外,由於傳輸發生在 服務器上,因此您無法將 請求傳輸到外部站點。
可以找到更多的信息here。
我剛剛編輯了這個問題。值必須通過多頁傳遞 – user204588 2010-04-14 18:33:44
通過會話變量傳遞值不起作用。用戶點擊後退按鈕或單擊刷新並且會話變量已被垃圾收集時,您可能也有機會。這是任何緩存項目的方式。解決這個問題的一個方法是,當用戶進入第二頁時,您將所有變量放入由Key:Value對分隔的某個隱藏字段中。
如果這些值可以放在公開的地方,爲什麼不把它們放到URL中呢?
如果你不能這樣做,然後把它們放到數據庫中,並給每個用戶名指定一個Guid ID,這對我來說將是最後的選擇,因爲你必須在每個數據庫上讀寫數據庫請求。
答案完全取決於用戶下一次返回到您的網站時的期望。他希望你記得他已經輸入的聯繫信息嗎?如果是這樣,那麼你將不得不在數據庫,cookie等中使用長期持久性。你的用戶是否只爲這次訪問輸入其他人的信息(即客戶服務應用程序),並且會在下次輸入不同的信息他們參觀?如果是這樣,那麼你可能想使用Session對象。
是的,這就是我的想法。真的沒有理由將信息保存到數據庫。這些變量用於xml請求,他們可以在下一個請求中更改他們的賬單信息,所以我認爲會話是要走的路 – user204588 2010-04-14 20:04:51
- 1. 在頁面之間傳遞數據ASP.NET
- 2. 在頁面之間傳遞數據asp.net
- 3. ASP.net在頁面間傳遞數據
- 4. UWP在頁面之間傳遞數據
- 5. 在頁面之間傳遞數據鍵
- 6. 在頁面之間傳遞數據wp7
- 7. 在asp.net頁面之間傳遞XML
- 8. ASP.NET在多個頁面之間傳遞數據會話
- 9. asp.net:使用委託在頁面之間傳遞數據
- 10. 使用vb.net在ASP.net頁面之間傳遞數據
- 11. WP7頁面之間傳遞XML數據
- 12. 在主頁面和內容頁面之間傳遞數據
- 13. 在頁面之間傳遞jQuery參數
- 14. 在JSF頁面之間傳遞參數
- 15. 在WordPress頁面之間傳遞參數
- 16. 在網頁之間傳遞數據
- 17. 在asp.net網頁之間傳遞值
- 18. WP7在頁面間傳遞數據
- 19. 在頁面間傳遞用戶數據
- 20. html頁面之間傳遞參數
- 21. 在頁面之間傳遞數據在SPA中使用backbone.js
- 22. 替代查詢字符串以在ASP.Net頁面之間傳遞數據?
- 23. 在頁面之間傳遞對象
- 24. PHP在頁面之間傳遞消息
- 25. 在php頁面之間傳遞網址
- 26. 在頁面之間傳遞值
- 27. 在opencart頁面之間傳遞變量
- 28. 在JSF頁面之間傳遞信息
- 29. 在頁面之間傳遞狀態?
- 30. 在php頁面之間傳遞變量
那麼,context.Items將無法正常工作,因爲它會在請求之間被丟棄。 – tloflin 2010-04-14 18:32:52
如果使用Server.Transfer(),我認爲context.items是持久的? 值是從一個頁面轉到另一個頁面,還是通過用戶的生命週期持續存在?用戶是否需要攔截並更改這些值? – bryanjonker 2010-04-14 18:37:03
這將在結帳過程中進行,以便在用戶生命週期中保持它們。用戶在第一次輸入後不會更改這些值。這些值將類似於帳單地址,名字和姓氏等。 – user204588 2010-04-14 18:40:03