다음을 통해 공유


방법: 사용자를 다른 페이지로 리디렉션

업데이트: 2007년 11월

사용자를 특정 ASP.NET 웹 페이지에서 다른 웹 페이지로 리디렉션할 수 있습니다. 예를 들어 다중 페이지 양식의 일부로 이 작업을 수행할 수 있습니다.

다음과 같은 여러 가지 방법을 사용하여 페이지를 리디렉션할 수 있습니다.

  • 다른 페이지에 게시할 페이지 구성   이 시나리오에서 사용자는 다른 페이지에 게시하도록 구성된 단추를 클릭합니다. 이 시나리오는 다중 페이지 양식에 유용합니다. 그러나 작업을 완료하려면 사용자의 조작이 필요합니다. 자세한 내용은 ASP.NET 웹 페이지에서 페이지 간 게시를 참조하십시오.

  • 브라우저를 동적으로 사용   이 시나리오에서는 다른 페이지를 검색하도록 하는 명령을 사용자 브라우저에 보냅니다. 이렇게 하면 프로그래밍 방식을 통해 다른 페이지로 리디렉션할 수 있습니다. 그러나 리디렉션하면 새 요청(HTTP GET)이 발생하고 소스 페이지의 모든 게시 데이터가 손실됩니다.

서버측 메서드를 동적으로 사용   이 시나리오에서 서버는 컨텍스트를 다른 페이지에 전송만 하면 됩니다. 이 방법을 사용하면 여러 페이지에서 페이지 컨텍스트 정보를 공유할 수 있다는 장점이 있습니다. 반면에 사용자의 브라우저에서 전송을 인식하지 못하므로 브라우저의 기록이 업데이트되지 않는다는 단점도 있습니다. 사용자가 페이지를 새로 고치면 예기치 않은 결과가 발생할 수 있습니다. 서버 전송 중에 페이지 컨텍스트를 공유하는 데 대한 자세한 내용은 방법: ASP.NET 웹 페이지 간에 값 전달을 참조하십시오.

브라우저를 사용하여 사용자를 다른 페이지로 리디렉션하려면

  1. Response 개체의 BufferOutput 속성을 true로 설정합니다.

  2. Response 개체의 Redirect 메서드를 호출하고 사용자를 리디렉션할 대상 페이지의 URL을 메서드에 전달합니다.

    다음 코드 예제에서는 다른 곳에 설정된 지역 변수 UserLanguage의 내용에 따라 페이지를 리디렉션하는 방법을 보여 줍니다.

    Response.BufferOutput = True
    If UserLanguage = "English" Then
        Response.Redirect("https://www.microsoft.com/gohere/look.htm")
    ElseIf UserLanguage = "Deutsch" Then
        Response.Redirect("https://www.microsoft.com/gohere/look_deu.htm")
    ElseIf UserLanguage = "Español" Then
        Response.Redirect("https://www.microsoft.com/gohere/look_esp.htm")
    End If
    
    Response.BufferOutput = true;
    if (UserLanguage == "English")
    {
        Response.Redirect("https://www.microsoft.com/gohere/look.htm");
    }
    else if (UserLanguage == "Deutsch")
    {
        Response.Redirect("https://www.microsoft.com/gohere/look_deu.htm");
    }
    else if (UserLanguage == "Español")
    {
        Response.Redirect("https://www.microsoft.com/gohere/look_esp.htm");
    }
    

서버측 메서드를 사용하여 사용자를 다른 페이지로 리디렉션하려면

  • Transfer 메서드를 호출하고 사용자를 리디렉션할 대상 페이지의 이름을 메서드에 전달합니다.

    다음 코드 예제에서는 다른 페이지로 리디렉션하는 방법을 보여 줍니다.

    Protected Sub Button1_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles Button1.Click
            Server.Transfer("Page2.aspx", True)
    End Sub
    
    protected void Button1_Click(object sender, System.EventArgs e)
    {
       Server.Transfer("Page2.aspx", true);
    }
    

참고 항목

작업

방법: ASP.NET 웹 페이지 간에 값 전달