2010-09-27 115 views
1

如何在所有Web應用程序(如會話)之間共享數據。我已經使用會話,但是當我提出任何下一個請求時,價值會變得不知所云,我不知道天氣我犯了什麼錯誤。只是想在登錄時從數據庫提取一次後在所有應用程序之間共享數據。 (像會議沒有打破MVC的規則)謝謝在控制器和頁面之間共享數據

沒有不同的應用程序,我只是把 HttpContext.Current.Session [「city」] = value;在數據取類 但但不能不能得到在控制器此值作爲 城市=(字符串)HttpContext.Current.Session [「城市」]錯誤對象不設置爲一個實例

+0

你想達到什麼目的?不能想出很多你想要這種行爲的東西。 – bastijn 2010-09-27 11:11:05

+0

沒有什麼大事只是想在使用其控制器而不是主頁面登錄時從數據庫中獲取登錄後顯示登錄的城市becoz我還需要進一步的sql查詢。 – user426306 2010-09-27 11:26:32

+0

您的主題開始有點混亂。花點時間寫下它,並確保「upvote」或「accept」答案是解決問題的答案。我不禁注意到,你所有的問題仍然沒有解決,也沒有接受你方的回答。當某些問題解決了你的問題時,讓其他人知道,這樣當他們自己遇到同樣的問題時,他們會知道什麼答案是正確的。 – bastijn 2010-09-27 12:12:56

回答

0

會話所特有的給定應用程序有多個應用程序之間的同一會議,但恕我直言,這不是一個好的設計workarounds that allow you to share。另一種方法是簡單地在這些應用程序之間共享一個ID(使用cookie或將其作爲請求參數發送)並從數據庫中獲取數據。

+0

好吧,感謝您的答案,但從數據庫中提取將使操作變化緩慢,cookie可以禁用,我們有解決方案就像我們在asp.net會話中,我們只有一次進入數據,並且可以隨時隨地在aspx頁面中使用,並且可以使用cs文件? – user426306 2010-09-27 11:22:22

+0

如果您有不同的應用程序,則需要在這些應用程序之間共享會話。閱讀我在答案中鏈接到的文章,瞭解如何實現這一目標。 – 2010-09-27 11:25:48

+0

對於「所有應用程序」,他意味着整個應用程序,而不是在不同的應用程序之間。他的英語只是有點時髦:)。 @TS:一個數據庫請求得到國家太慢?! – bastijn 2010-09-27 11:49:20

0

雖然我不認爲這是您的情況的良好做法,但this SO link可能會對您有所幫助。它解釋瞭如何使用Cache來存儲應用程序變量。

請記住,如果你這樣做,當用戶改變他的國家或什麼的時候你的應用程序不會反映這個(或者如果你定期刷新它)。我不明白爲什麼一個簡單的數據庫請求讓你的LoggedIn用戶的國家不合適(速度看起來很奇怪,只是一個請求,反正你可能在這個頁面上做的更多)。

相關問題