首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

Request.QueryString("id")全部值都变成了最后一个客户端提交的值

2012-08-14 
Request.QueryString(id)所有值都变成了最后一个客户端提交的值protected static string id protec

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静态,任何请求这个页面都会改变它的值。不是说放哪的问题。他就存一个值啊。
[解决办法]
静态变量,在过程被执行或者调用时被赋值,后面接着被调用时不会在赋初值。

热点排行