我的页面转移流程是这样的,使用Server.Tansfer
A.aspx → B.aspx 
...(B.aspx的PostBack)
B.asxp → A.aspx 使用Server.Tansfer跳转回到A.asxp的时候,希望能够得到A.aspx以前的状态,也就是迁移到B.aspx之前的状态,之前已经通过A.aspx的SavePageStateToPersistenceMedium把Request.Form保存到Session中,现在只是想通过LoadPageStateFromPersistenceMedium把Request.Form取出来,还原里面的ViewState。现在的问题是,因为Server.Tansfer是服务器端行为,在非PostBack的情况下LoadPageStateFromPersistenceMedium没有被B.aspx的HttpHandler调用。我尝试着在DeterminePostBackMode中返回Request.Form,但仍然无法模拟PostBack。是否Server.Tansfer无论如何也无法实现PostBack?另外:Request.Redirect已经测试通过,可以实现。
盼望各位高手的指点,多谢。

解决方案 »

  1.   

    Request.Redirect既然可以实现的话你为什么还要用Server.Tansfer?
    你编写的是Wap程序?
    那样的话换种方法,比如在URL后面加个参数,再去判断一下
      

  2.   

    把From提交的数据先保存起来,。。然后再读出来。。
      

  3.   

    既然是保存到session,那自己保存也是一样,
      

  4.   

    to:best8625
    我的问题是Server.Transfer,谢谢。这是MSDN里面对DeterminePostBackMode的解释
    ==============================================================================
    返回值
    一个包含窗体数据的 NameValueCollection 对象。如果回发使用 POST 命令,则从 Context 对象返回窗体信息。如果回发使用 GET 命令,则返回查询字符串信息。如果是第一次请求该页,则返回 空引用(在 Visual Basic 中为 Nothing)。 
    备注DeterminePostBackMode 方法返回一个 NameValueCollection 对象,其中包含回发到页的数据。页隐藏字段 VIEWSTATE 和 EVENTTARGET 的存在是用于帮助确定是否已发生回发事件的。IsPostBack 属性是在调用 DeterminePostBackMode 方法时设置的。
    ==============================================================================而且.NET FrameWork2.0中使用Server.Tansfer("自己.aspx")是可以正常触发PostBack的,所以我认为即使是服务器端行为,页面迁移的时候也是可以直接触发目标页面的PostBack的。继续请教...
      

  5.   

    要这么麻烦么?直接取Form集合就是了。B中 Request.Form["txtA"];txtA是A页面中的控件名,取不到么?
      

  6.   

    或者Trabsfer方法执行前,使用this.Context.Items集合,添加值,跳转后取出就是了。
      

  7.   

    各位,请仔细看一些我的问题。简单的说,我是想要寻求一个取回以前页面状态的解决方案,而不是仅仅为了解决一个问题。
    请先看一下下面的这个解决方案:
    http://www.codeproject.com/aspnet/PersistentStatePage.asp回到我的问题上,Server.Transfer能否实现同样的功能?能否触发目标页面的PostBack?