다음을 통해 공유


HttpResponse.Redirect 메서드

정의

클라이언트를 새 URL로 리디렉션합니다.

오버로드

Redirect(String)

요청을 새 URL로 리디렉션하고 새 URL을 지정합니다.

Redirect(String, Boolean)

클라이언트를 새 URL로 리디렉션합니다. 새 URL을 지정하고 현재 페이지 실행을 종료해야 하는지를 지정합니다.

Redirect(String)

요청을 새 URL로 리디렉션하고 새 URL을 지정합니다.

public:
 void Redirect(System::String ^ url);
public void Redirect (string url);
member this.Redirect : string -> unit
Public Sub Redirect (url As String)

매개 변수

url
String

대상 위치입니다. 이것은 애플리케이션 관련 가상 경로일 수 있습니다.

예외

HTTP 헤더를 보낸 후 리디렉션이 시도되는 경우

예제

다음 예제에서는 다른 웹 사이트로 무조건 리디렉션을 강제합니다.

Response.Redirect("http://www.microsoft.com/gohere/look.htm");

Response.Redirect("http://www.microsoft.com/gohere/look.htm")
   

설명

호출 Redirect 은 두 번째 매개 변수가 로 설정된 를 호출 Redirect 하는 것과 true같습니다.

Redirect는 완료 시 예외를 throw하는 을 ThreadAbortException 호출 End 합니다. 이 예외는 웹 애플리케이션 성능에 나쁜 영향을 미칩니다. 따라서 이 오버로드 대신 오버로드를 HttpResponse.Redirect(String, Boolean) 사용하고 매개 변수에 전달 falseendResponse 한 다음 메서드를 호출하는 CompleteRequest 것이 좋습니다. 자세한 내용은 End 메서드를 참조하세요.

참고

모바일 페이지의 경우 애플리케이션이 쿠키 없는 세션에 의존하거나 쿠키 없는 세션이 필요한 모바일 디바이스에서 요청을 받을 수 있는 경우에만 경로에서 타일(~)을 사용하면 새 세션이 만들어지고 세션 데이터가 손실될 수 있습니다. "~/path"와 같은 경로를 사용하여 모바일 컨트롤에서 속성을 설정하려면 속성에 할당하기 전에 "~/path"를 사용하여 ResolveUrl 경로를 resolve.

ASP.NET 302 HTTP 상태 코드를 반환하여 리디렉션을 수행합니다. 컨트롤을 다른 페이지로 전송하는 다른 방법은 메서드입니다 Transfer . 메서드는 Transfer 클라이언트로의 왕복을 유발하지 않으므로 일반적으로 더 효율적입니다. 자세한 내용은 방법: 사용자를 다른 페이지로 리디렉션을 참조하세요.

적용 대상

Redirect(String, Boolean)

클라이언트를 새 URL로 리디렉션합니다. 새 URL을 지정하고 현재 페이지 실행을 종료해야 하는지를 지정합니다.

public:
 void Redirect(System::String ^ url, bool endResponse);
public void Redirect (string url, bool endResponse);
member this.Redirect : string * bool -> unit
Public Sub Redirect (url As String, endResponse As Boolean)

매개 변수

url
String

대상 위치입니다.

endResponse
Boolean

현재 페이지 실행을 종료해야 하는지 여부를 나타냅니다.

예외

url이(가) null인 경우

url에 줄 바꿈 문자가 포함되어 있는 경우

HTTP 헤더를 보낸 후 리디렉션이 시도되는 경우

페이지 요청이 콜백의 결과인 경우

예제

다음 예제에서는 사용 하 IsClientConnected 여는 속성을 페이지를 요청 하는 클라이언트가 서버에 연결 된 상태를 유지 하는지 여부를 검사 합니다. 가 true이면 IsClientConnected 코드는 메서드를 Redirect 호출하고 클라이언트는 다른 페이지를 봅니다. 가 false이면 IsClientConnected 코드가 메서드를 End 호출하고 모든 페이지 처리가 종료됩니다.

<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

    private void Page_Load(object sender, EventArgs e)
    {
        // Check whether the browser remains
        // connected to the server.
        if (Response.IsClientConnected)
        {
            // If still connected, redirect
            // to another page. 
            Response.Redirect("Page2CS.aspx", false);
        }
        else
        {
            // If the browser is not connected
            // stop all response processing.
            Response.End();
        }
    }

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
    </form>
</body>
</html>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
    Private Sub Page_Load(sender As Object, e As EventArgs)

        ' Check whether the browser remains
        ' connected to the server.
        If (Response.IsClientConnected) Then

            ' If still connected, redirect
            ' to another page.             
            Response.Redirect("Page2VB.aspx", false)
        Else
            ' If the browser is not connected
            ' stop all response processing.
            Response.End()
        End If
    End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
    </form>
</body>
</html>

설명

대상 위치에 대해 절대 URL(예: http://www.contoso.com/default.aspx) 또는 상대 URL(예: Default.aspx)을 지정할 수 있지만 일부 브라우저는 상대 URL을 거부할 수 있습니다.

페이지 처리기에서 이 메서드를 사용하여 한 페이지에 대한 요청을 종료하고 다른 페이지에 대한 새 요청을 시작하는 경우 를 로 false 설정한 endResponse 다음 메서드를 호출합니다CompleteRequest. 매개 변수에 endResponse 대해 를 지정 true 하는 경우 이 메서드는 원래 요청에 대한 메서드를 호출 End 하며, 이 메서드는 완료되면 예외를 ThreadAbortException throw합니다. 이 예외는 전달 중인 웹 애플리케이션 성능에 부정적 false 에 대 한는 endResponse 매개 변수를 사용 하는 것이 좋습니다. 자세한 내용은 End 메서드를 참조하세요.

참고

모바일 페이지의 경우 애플리케이션이 쿠키 없는 세션에 의존하거나 쿠키 없는 세션이 필요한 모바일 디바이스에서 요청을 받을 수 있는 경우 경로에서 타일(~)을 사용하면 새 세션을 만들고 세션 데이터가 손실될 수 있습니다. "~/path"와 같은 경로를 사용하여 모바일 컨트롤에서 속성을 설정하려면 속성에 할당하기 전에 "~/path"를 사용하여 ResolveUrl 경로를 resolve.

ASP.NET 302 HTTP 상태 코드를 반환하여 리디렉션을 수행합니다. 컨트롤을 다른 페이지로 전송하는 다른 방법은 메서드입니다 Transfer . 메서드는 Transfer 클라이언트로의 왕복을 유발하지 않으므로 일반적으로 더 효율적입니다. 자세한 내용은 방법: 사용자를 다른 페이지로 리디렉션을 참조하세요.

적용 대상