seeViewState: Restore after Redirect
http://authors.aspalliance.com/PaulWilson/Articles/default.aspx?id=10&Print=True

解决方案 »

  1.   

    我是这么做的
    在A页中有转到B的时候,带个参数比如papeaa=2
    然后在B中接收并保存比如,定义一个变量rpage=pageaa
    然后从B返回A的时候带上pageaa=rpage
    y就可以了
      

  2.   

    我的方法和楼上差不多,不过我用cookie来记录参数。
    不设置cookie生命周期,在page_load()的时候
    if(Request.Cookies["aa"] != null),如果存在就读出来。这样不用向B传参数了,省很多事,而且可以做成转B再转C最后转回来,也没有问题。
      

  3.   

    我有个办法不用传参数!A页中用来转到B页的代码
    Request.Redutect("b.aspx",false);
    或者
    Server.Transfor("b.aspx",false);B页转A页
    Request.Redutect("b.aspx",false);
    或者
    Server.Transfor("b.aspx",false);
    如果把FALSE换成TRUE,那么转过去以后当前页就被清除了。
    最好注意一下两个页面的关于状态保存的几个属性 
    效果会有差异但是我还是建议不要这样向楼主说的那样做!
    因为用户可能同时开几个窗口,对COOKIE和SESSION等操作如果处理不好 就会出现意想不到的错误。
      

  4.   

    保留视图状态,重写该方法:
    protected override void SavePageStateToPersistenceMedium(object viewState) {
    if (Context.Items["RedirectPage"] != null) {
    Session["ViewState"] = viewState;
    Response.Redirect(Context.Items["RedirectPage"].ToString());
    }
    else {
    base.SavePageStateToPersistenceMedium(viewState);
    }
    }