2012-03-18 73 views
0

我有一个静态的int,保持有多少用户控件已添加到页面的记录。用户控制添加到页面动态与计数器

static int mycount = 1; //Default value 

当我添加更多的控制柜台得到+1的网页,这是工作的罚款

static int mycount = 2; //Add second control 

但是,如果我在不同的浏览器打开网页的另一个实例柜台仍然有mycount的= 2

如果您打开新的浏览器会话,则静态int应该有1个默认值。

我需要使用会话还是什么?

// UPDATE

我使用的会话后,我找到了答案在这里SO

How to access session variables from any class in ASP.NET?

的会话处理

+0

C#= ASP经典 – SLaks 2012-03-18 21:17:56

+0

更改为:asp.net – 2012-03-18 21:33:05

回答

0

当然,我会建议使用不是静态的,因为静态保存在内存中,可能会停留在那里一段时间,以其他方式会话变量存储在会话中,通常只取决于特定用户,因此所有会话变量对用户来说是唯一的,而静态变量则更难以独特。 !

Session["mycount"] = 1; 

http://msdn.microsoft.com/en-us/library/ms178581.aspx 或者根据您的情况下,它甚至更好的使用ViewState的 http://msdn.microsoft.com/en-us/library/4yfdwycw%28v=vs.71%29.aspx

ViewState["mycount"] = "1"; 
0

是的,绝对是很能说明问题! 为静态变量分配的内存分配给对象类型的堆内部。就我们实例化而言,内存中每个页面只有一个对象类型使其表现如此。 对于asp网页会话状态更有用,然后静态变量。 下一个post陈述相同的更多细节。