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) 사용하고 매개 변수에 endResponse 전달 false 한 다음 메서드를 호출하는 CompleteRequest 것이 좋습니다. 자세한 내용은 End 메서드를 참조하세요.

참고

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

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.aspxDefault.aspx)을 지정하거나 상대 URL을 지정할 수 있지만 일부 브라우저는 상대 URL을 거부할 수 있습니다.

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

참고

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

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

적용 대상