2012-07-03 83 views
4

我有一個頁面,其指令爲EnableSessionState =「ReadOnly」 setted。即使EnableSessionState =「ReadOnly」,設置了asp.net變量

當我有:

this.Session.Add("MyVar","TempVar"); 

下一請求返回NULL

時,我有:

this.Session["MyVar"] = "TempVar"; 

下一個請求返回「的TempVar」

我可以禁用此行爲?

+0

你想只爲這個頁面或整個webapp? –

+0

只是這個頁面。我無法理解,爲什麼添加一個項目到「添加」的集合它只是暫時的,而設置一個項目它是「全球」 – user1499560

+0

希望以下鏈接將對你有很大的幫助[http://stackoverflow.com/問題/ 4506273 /化妝會話只讀式-ASP淨編程方式ENABLESESSIONSTATE-只讀(http://stackoverflow.com/questions/4506273/make-session-readonly-on-asp-net-programmatically-enablesessionstate -readonly)[http://forums.asp.net/t/1375468.aspx/1](http://forums.asp.net/t/1375468.aspx/1) –

回答

0

它這樣做的原因是因爲Session [「」]正在使用get; set訪問數組;訪問者顯然沒有設置爲檢查enablesessionstate。所以基本上它被放入陣列中,但沒有得到保存。與.Add()函數相比,它明顯具有檢查功能。它可能就是爲了減少get的開銷; set;屬性。

正如別人所說,你可能會在同一請求中看到它,但它沒有被保存到會話中。

+0

我的結論完全。我無法確認反光鏡 – user1499560

相關問題