为什么不Server.Transfer为什么只有Response.Redirect

时间:2011-01-13 10:27:35

标签: javascript asp.net

我有2个文本框和一个按钮以及一个Href标签,可在点击日历时打开日历。我在另一页上也一样

我使用Respose.Redirect

编写一个代码以转移到特定页面,如下所示
protected void Button1_Click3(object sender, EventArgs e)
{
    Response.Redirect("Demo/Default.aspx");//Works fine
    //Server.Tranfer("Demo/Default.aspx"); // Does not works
}

这很干净但是如果我在第二页上使用Sever.Tranfer我无法在用户点击Href标签时加载日历控件

1 个答案:

答案 0 :(得分:2)

http://www.developer.com/net/asp/article.php/3299641/ServerTransfer-Vs-ResponseRedirect.htm

  

首先,转移到另一页   使用Server.Transfer节省服务器   资源。而不是告诉   浏览器重定向,它只是改变   Web服务器上的“焦点”和   转移请求。这意味着你   不要获得尽可能多的HTTP请求   通过,因此缓和   Web服务器上的压力和   使您的应用程序运行得更快。

     

但请注意:因为“转移”   进程只能在那些站点上运行   在服务器上运行,你无法使用   Server.Transfer将用户发送到   外部网站。只有Response.Redirect   可以那样做。

     

其次,Server.Transfer维护   浏览器中的原始URL。这个   真的可以帮助简化数据输入   技术虽然可能有所作为   调试时的困惑。

     

这不是全部:Server.Transfer   方法还有第二个   参数 - “preserveForm”。如果你设置   这是真的,使用这样的陈述   作为Server.Transfer(“WebForm2.aspx”,   True),现有的查询字符串和   任何形式的变量仍然是   可用于您所在的页面   转移到。

     

例如,如果你的WebForm1.aspx有   一个名为TextBox1和的TextBox控件   你转移到WebForm2.aspx   preserveForm参数设置为   没错,你可以找回   原始页面TextBox的值   通过引用控制   的Request.Form( “TextBox1中”)。