Server.Transfer与Response.Redirect有什么区别,另外我想打开另外的一张页面,除了window.open还有其他的办法吗

解决方案 »

  1.   

    一般要post数据过去的时候,使用Server.Transfer打开页面也可以直接用页面连接 <a href>....
    或者是showmodaldialog
      

  2.   

    Server.Transfer与Response.Redirect的区别:
    Response.Redirect是直接跳转的指定的URL;
    Server.Transfer是将当前页面传输到指定URL,然后你在指定的URL页面可以上下文Context获取上个页面的对象,通过该对象访问其公共的属性,也是页面传值的一种好方法
      

  3.   

    将用户重定向到另一页请参见
    在 Web 窗体页之间传递值 | HttpResponse 类 | HttpResponse.Redirect 方法 | Web 窗体编程 
    您可能想要将用户从一个 Web 窗体页重定向到另一页。您这样做可能是为了显示与用户的浏览器功能匹配的页或以用户使用的语言编写的页。有两种方法可以重定向页: 使用服务器端方法。在此方案中,服务器只是将上下文传输到另一页。其优点是您可以共享页之间的页上下文信息。其缺点是用户的浏览器不知道在进行传输,因此不更新浏览器的历史记录。如果用户刷新此页,则可能会产生意外的结果。 
    使用浏览器。在此方案中,将一个命令发送到用户浏览器,使浏览器获取另一页。其优点是更新浏览器的历史记录。其缺点是此方案执行额外的往返过程,这会影响性能。 
    使用服务器端方法将用户重定向到另一页 调用 Server.Transfer,向它传递要重定向到的页的名称。 
    以下示例显示如何重定向到另一页。 
    ' Visual Basic
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Server.Transfer("Webform2.aspx")
        End Sub// C#
    private void Button1_Click(object sender, System.EventArgs e)
    {
       Server.Transfer("Webform2.aspx");
    }
    有关在服务器传输过程中,共享页上下文的详细信息,请参见在 Web 窗体页之间传递值。 将用户从浏览器重定向到另一页 将 Response 对象的 BufferOutput 属性设置为 true。 
    调用 Response 对象的重定向方法,并向其传递要重定向到的页的 URL。 
    以下示例显示如何根据局部变量 UserLanguage(在其他地方设置)的内容来进行重定向。 ' Visual Basic
    Response.BufferOutput = True
    If UserLanguage = "English" Then
       Response.Redirect("http://www.microsoft.com/gohere/look.htm")
    ElseIf UserLanguage = "Deutsch" Then
       Response.Redirect("http://www.microsoft.com/gohere/look_deu.htm")
    ElseIf UserLanguage = "Espa&ntilde;ol" Then
       Response.Redirect("http://www.microsoft.com/gohere/look_esp.htm")
    End If// C#
    Response.BufferOutput = true;
    if (UserLanguage == "English")
    {
       Response.Redirect("http://www.microsoft.com/gohere/look.htm");
    }
    else if (UserLanguage == "Deutsch")
    {
       Response.Redirect("http://www.microsoft.com/gohere/look_deu.htm");
    }
    else if (UserLanguage == "Espa&ntilde;ol")
    {
       Response.Redirect("http://www.microsoft.com/gohere/look_esp.htm");
    }
      

  4.   

    Server.Transfer 方法转移的目标页应是同一应用程序中的另一 Web 窗体页(.aspx 页)。不能使用 Server.Transfer 重定向到 .asp 或 .asmx 页。确保目标页存在。因为 Server.Transfer 是在服务器上执行的,所以浏览器没有页更改的记录。因此,如果用户刷新此页,则可能会产生意外的结果。
      

  5.   

    Response.Redirect是直接跳转的指定的URL;
    Server.Transfer是将当前页面传输到指定URL
      

  6.   

    Server.Transfer与Response.Redirect的区别:
    Response.Redirect是直接跳转的指定的URL;
    Server.Transfer是将当前页面传输到指定URL,然后你在指定的URL页面可以上下文Context获取上个页面的对象,通过该对象访问其公共的属性,也是页面传值的一种好方法举个例子吧:
    Response.Redirect跳转,URL地址变了,而Server.Transfer则不变
      

  7.   

    Response.Redirect是通过在Response里面返回一个重定向指令,让客户端浏览器自己去重新请求该指令所指向的新目标。这个新目标可以是任何的URL,站内的站外的都可以,是否是AppDomain内的都无所谓。Server.Transfer,实在不让客户端知道有任何区别的情况下,有点类似URL重写那样,执行另外一个URL的ASP.NET页面。因为它是改变服务器端实际执行的ASP.NET页面,所以Server.Transfer的目标必须是同一个AppDomain下的ASP.NET页面,不能够是其他东西。举个例子,例如你通过Windows共享执行另一台计算机上的exe。Response.Redirect就相当于该exe弹出一个对话框,让你去执行另外一个exe,那么这个“另外一个exe”可以是任何地方的。Server.Transfer则相当于该exe自己帮你去调用另外一个exe,然后你就以为事情是这个exe做的,但这要求“另外一个exe”在当前这个exe有权限调用的范围之内。