2010-11-01 47 views
1

我試圖找出存在的問題: 我有多個同時調用同一個函數的問題。在2個ASP.NET請求之間共享會話

private const string aaaa= "aaaaa"; 
    protected bool test() 
    { 

     if (Session[aaaa] != null && (bool)Session[aaaa]) 
      return false; 

      Session[aaaa] = true; 
      return true; 
    } 

事情是 - 我的所有請求忽略Session[aaaa] != null && (bool)Session[aaaa],繼續爲如果沒有這樣的會話變量的定義!

怎麼可能? 會議何時正在更新?

+0

除了上面的代碼,你在哪裏添加'aaaa'會話變量? – Oded 2010-11-01 14:13:39

+0

就是這樣。就在那裏。嘿再次Oded;) – Himberjack 2010-11-01 14:16:08

+1

或者你可以添加一個靜態成員到你的班級。該成員將在您的整個應用程序上可用 – Zuuum 2010-11-01 17:22:09

回答

1

您需要設置會話變量,然後才能使用它....

session.add("aaaa", "some string"); 

那麼以後就可以回來說......

string result = session["aaaa"].tostring(); 

Hopefuly這將幫助

Protected void Page_Load(object sender, EventArgs e) 
    { 
     Session.Add("BoolTest", "False"); 
    } 

    Protected Bool test() 
    { 
      return (bool)Session["BoolTest"].tostring(); 
    } 

結果;測試=假

一些點以後,你會說的網頁...

Session["BoolTest"] = True; 

結果; test = true

+0

這就像做Session [aaaa] = true,不是嗎? – Himberjack 2010-11-01 14:23:24

+0

好吧......如果「aaaa」已經存在於會話中......如果不是,它只會返回一個空值。 session.add(「aaaa」,「some string」)用於將初始會話變量添加到內存中。 – Patrick 2010-11-01 14:27:05