public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Server.Transfer("WebForm2.aspx?id=1");
        }
    }   public partial class WebForm2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string a = Request.QueryString["id"].ToString();
        }
    }
使用Server.Transfer后,跳转到WEBFORM2,URL没改变,仍然是WEBFORM1.ASPX..并且能获取到QUERYSTRING的值但如果使用Response.Redirect后,URL发生了改变,同时也能获取QUERYSTRING的值。。两者到底有什么不同?仅仅只是URL的差别吗?求各位详细解释下。。
WebformURL

解决方案 »

  1.   

    Transfer是转向,Redirect是重定向。
    refer:http://www.cnblogs.com/windsails/archive/2004/09/30/48147.aspx
      

  2.   


    兄弟,这个我看过了感觉不是那么的详细Server.Transfer可以将页面参数方便传递到指定页面这句很不能理解能给我详细讲解下吗?谢谢了
      

  3.   

    你想想看,我们要传输一个对象(比如一个很大的DataSet)到另外一个页面去,怎么办?不用Session。这时我们就可以用Server.Transfer方法,直接在另外一个页面引用这个DataSet。
    另外,你参考一下:http://msdn.microsoft.com/en-us/library/aa711564,这里面说的大概意思是Redirect要在客户端浏览器中重新定向到新的url,又多了一次请求响应的过程,用户体验不好。而Transfer是直接在服务端传递的,并不需要刷新客户端浏览器的url。