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