如果我的主機與ASP.NET頁面:在第一次運行我得到了assigned Session Variable
文本IE8不保留會話變量
<%@ Page Language="C#" %>
<!DOCTYPE html>
<script runat="server">
protected void btn_Click(object sender, EventArgs e)
{
lbl.Text = HttpContext.Current.Session["a"] == null ?
"null" :
HttpContext.Current.Session["a"].ToString();
}
protected void btn_Click2(object sender, EventArgs e)
{
lbl.Text = HttpContext.Current.Cache["a"] == null ?
"null" :
HttpContext.Current.Cache["a"].ToString();
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
HttpContext.Current.Session["a"] = "CBA";
lbl.Text = "assigned Session Variable";
HttpContext.Current.Cache.Add(
"a", "ABC", null,
DateTime.Now.AddHours(2), TimeSpan.Zero,
CacheItemPriority.NotRemovable, null);
}
}
</script>
<html>
<head>
<title>Testing Session</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="btn" runat="server" Text="read Session" OnClick="btn_Click" />
<asp:Button ID="btn2" runat="server" Text="read Cache" OnClick="btn_Click2" />
<hr />
<asp:Label ID="lbl" runat="server" />
</div>
</form>
</body>
</html>
,但在單擊會話對象始終是null
有沒有我需要打開/關閉使用正常會話變量的選項?
適用於IIS 6.0和Cassini(VS 2008和2010下)。
我開始是沒有什麼回事想法:O(
任何幫助是極大的讚賞
示例頁面的上方
過程更多測試表明,這只是發生在IE瀏覽器(IE8在這種情況下),火狐,Safari,歌劇,鉻他們都給出正確的 「答案」
代碼顯示與示例不同。哪個點擊事件會「重新加載」?一個處理緩存或會話? – 2010-09-07 12:12:20
是的,我最終添加了一個'Cache'按鈕,以查看緩存是如何處理的......它的處理是否正確,但我確實需要會話變量,因爲我希望每個用戶使用會話變量,而不是每個應用程序和數據是我真的不需要緩存的東西。 ** ScreenCast **有新的代碼(在我的問題開始時的示例代碼) – balexandre 2010-09-07 12:20:52
我遇到了同樣的問題......是否有人知道可能是什麼問題?該網站在Firefox上運行良好,但用戶(遍佈全國)使用IE8。 該網站在IE8中工作得很好,直到幾天前。我找不到解釋! – 2011-02-18 18:05:52