我的页面跳转是通过Response.Redirect实现的,那发现Session保存值有问题?A页面(C#)protected void Page_Load(object sender, EventArgs e)
    {
        //第一次加载网页时
        if (!IsPostBack)
        {
            //执行第一次查询
            TextBox1.Text = GetPageIndex();
        }
    }    //取出Session["a_pageindex"]的值
    public string GetPageIndex()
    {
        try
        {
            return Session["a_pageindex"].ToString();
        }
        catch (Exception ex)
        {
            Session["a_pageindex"].ToString() = "1";
            return "1";
        }
    }protected void Button1_Click(object sender, EventArgs e)
    {
        Session["a_pageindex"] = "2";
     }
当页加载时TextBox1的值是"1",当按下Button1后,Session["a_pageindex"] 的值应该为"2"了,当用Response.Redirect转到其它页面后,再回到A页面,这时TextBox1的值还时"1",为什么,应该是"2"才对呀

解决方案 »

  1.   

    Session["a_pageindex"]赋值是使用Session.Add("a_pageindex", "");
      

  2.   

    你在 跳转的 之前 就 再一次的 更改 session 值啊更改 了 回来时候还是 更改后的
      

  3.   

    赋值在前,你得再调用下这个方法啊,
    TextBox1.Text = GetPageIndex();
      

  4.   

    跳转后再回到A页面,会执行下面的代码
    //第一次加载网页时
      if (!IsPostBack)
      {
      //执行第一次查询
      TextBox1.Text = GetPageIndex();
      }
      }
    所以Session又被赋值成1了。
      

  5.   

    我把它改为这种 Session.Add("a_pageindex", "");还是不行!
      

  6.   

    楼主描述不是太清晰,ASP.NET页面跳转或文件修改时是中存在session丢失的问题建议用调试的办法 session.getId()获得sessionID 用JS alert()弹出ID 看看是丢失的问题还是逻辑哪里出了问题。
      

  7.   

    Session["a_pageindex"].ToString() = "1";改为
     Session["a_pageindex"] = "1";我本地测试下来 回传后是2
      

  8.   

    LZ, 你这样的写法会有问题,当第二个人访问相同页面处理相同事情时,Session 会被最后那个用的人UPDATE,这是个BUG哦,要做相应处理,比如deep clone;去做一下research吧。
      

  9.   


    恭喜,微软的大bug被你找到了。- -!
      

  10.   

    LZ是怎么回到A页面的????
    是用连接和是用的go(-1)??????