在Default.aspx  点击链接到Default2.aspxDefault.aspx:
 protected void Page_Load(object sender, EventArgs e)
{
ParentId = Request["ParentId"];
Session["ParentId"] = ParentId;
Response.Write("Session1" + Session["ParentId"]);
}
Default2.aspx:
protected void Page_Load(object sender, EventArgs e)
{
 Response.Write("Session2" + Session["ParentId"]);
}
为什么在Default.aspx后退后,点击Default2.aspx
Default.aspx的session值变了,
Default2.aspx的session值还是一样呢?

解决方案 »

  1.   

    Default1.aspx的Session["ParentId"]值从1到2,然后点后退变成1,
    点击链接到Default2.aspx
    Session["ParentId"]的值,竟然还是2
     
      

  2.   

    ParentId = Request["ParentId"];
    Session["ParentId"] = ParentId;
    断点调试  看 ParentId 的值。
      

  3.   

    不关session的事,看后退的页面是否修改其值
      

  4.   

    Response.Write("Session1" + Session["ParentId"]);
    输出Session11Response.Write("Session2" + Session["ParentId"]);
    还是输出Session22
      

  5.   

    开始是2,后退页面修改为1,
    那点击链接后获取的session也应该是1啊 为什么还是2呢?
      

  6.   

    我做的时多级树管理Default.aspx显示ParentId=-1的节点,保存到Session["ParentId"]
    节点1
    然后点击节点1显示父节点为1的节点 Default2.aspx是添加节点页面,根据Session["ParentId"]获取父节点正常情况下1->2->3->4
    点击添加页面(Default2.aspx)都正常从4后退到3->2->1
    这时候点击添加页面(Default2.aspx) 就出问题了
    添加页面的Session["ParentId"]  一直是4
      

  7.   

    Request["ParentId"] 的值发生变化引起个。
    将Session["ParentId"] = ParentId;改为Session["ParentId"] = 1.就明白了
      

  8.   


    因为这个ParentId要变化的
    根据进入的节点 变化
    ParentId值:-1->1->2->3->4现在是后退时候另一界面获取的值ParentId没变,如果后退时刷新下,又正常了
      

  9.   

    我后退直接用
    javascript:history.go(-1);
      

  10.   

    那添加页面的值 也应该改变才对啊
    难道是javascript:history.go(-1)后Page_Load不会执行?
    session
      

  11.   

    我这要怎么解决啊
    网上查了下面的后退刷新,但是只能后退一个页面,怎么后退多个页面刷新呢?
          if (!IsPostBack)
            {
                if (Request.UrlReferrer != null)
                    ViewState["UrlReferrer"] = Request.UrlReferrer.ToString();
            }    protected void ButtonBack_Click(object sender, EventArgs e)
        {
            Response.Redirect(ViewState["UrlReferrer"].ToString());
        }<asp:Button ID="ButtonBack" runat="server" Text="back"  OnClick="ButtonBack_Click"/>
      

  12.   

    你现在的方式是 a 跳转 b,a页面url传递ParentId,
    换种方式实现,a页面跳转前直接设置session。
      

  13.   

    后退的时候,没有判断sessoin是否为空,为空的情况下Default.aspx才应该赋值
    所以是逻辑上的问题
      

  14.   


    为什么sessoin为空Default.aspx才应该赋值?同一时刻 Session["ParentId"]值是唯一的吧
    Default.aspx页面赋值了 就以Default.aspx为准啊 Default2.aspx获取的session值 也更新了
      

  15.   

    在java中  我就是这么操作的,一点问题都没有java中只要后退了 session也更新了啊
    .net的session操作方式 和java不一样吗?