Postback和Response.Redirect的区别

 

  .NET的服务器控件都是通过ViewState保存状态,而这个ViewState值又保存在一个hidden控件中,

所以,只有你submit,ViewState才能帮你保存并恢复状态, 如果你只是用一个location=...则服务器控件的状态也会丢失.

而一般来讲都是用的post方法提交form。

所以表面上可以像楼上那么理解.但总的来说,你是submit提交form的话,并且form又是runat=server的话,就是IsPostBack。

  redirect当前页面等于重新打开一次这个页面,ViewState的内容会丢失,相应地所有控件的内容会恢复到初始状态。

  response.redirect其实上是当服务器碰到这条语句时发送一条指令(包含新的地址)给浏览器,然后让浏览器去发送http请求,请求response.redirect后面的那个新的http地址,流程如下:
  浏览器ASPX文件请求->服务器执行->遇到response.redirect语句->服务器发送response.redirect后面的地址给客户机端的浏览器->浏览器请求执行新的地址(服务器返回的Response.Redirect后面的地址)这就是一个小小的Response.Redirect的全部过程,
ASP2.0中的Server.Transfer语句当接受地址后是直接转向后面的地址,流程如下:
   浏览器ASPX文件请求->服务器执行->遇到Server.Transfer语句->服务器转向新的文件。
Server.Transfer方法与Redirect方法相比另一个显著的优势是在页面转换时,Request集合里的内容不会丢失,这给我们编程带来很大的方便.
一般的情况下尽可能用Server.Transfer方法(前提是服务器是IIS),Server.Transfer方法更快速,而且因为只在服务器上执行,所以可以和任何浏览器兼容。

 

posted @ 2009-12-24 10:32  t_l  阅读(972)  评论(1编辑  收藏  举报