日期:2014-05-17  浏览次数:20470 次

Request.QueryString("id")所有值都变成了最后一个客户端提交的值
protected static string id = "";

protected void Page_Load(object sender, EventArgs e)
{
  if (!IsPostBack && !IsCallback)
  {
  id = Request.QueryString["id"].ToString();
  }
}

这里的id值,获取的时候都变成了最后一个客户端传递的值。比如同时有2个客户端(局域网内不同机器)在访问此页面,A客户端传递的id=1,B客户端随后也传递了id=2,结果A客户端的id自动变成了2,这是怎么回事啊,跪求各位大虾帮忙!!!

------解决方案--------------------
不要使用static 
这个static 类型是所有用户共享的
------解决方案--------------------
探讨

引用:

不要使用static
这个static 类型是所有用户共享的


可是不使用 static 的话,页面上任何一个服务器控件响应,id值就没有了,而程序过程中又必须使用这个id值

------解决方案--------------------
protected string id = "";

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack && !IsCallback)
{
id = Request.QueryString["id"].ToString();
viewstate["id"] = id;
}
else
{
if (viewstate["id"] != null)
id = viewstate["id"].ToString();
}
}


------解决方案--------------------
static静态,任何请求这个页面都会改变它的值。不是说放哪的问题。他就存一个值啊。
------解决方案--------------------
静态变量,在过程被执行或者调用时被赋值,后面接着被调用时不会在赋初值。