Поделиться через


HttpResponse.Redirect Метод

Определение

Перенаправляет клиента на новый URL-адрес.

Перегрузки

Redirect(String)

Перенаправляет запрос по новому адресу и задает новый URL-адрес.

Redirect(String, Boolean)

Перенаправляет клиента на новый URL-адрес. Задает новый URL-адрес и условия прекращения выполнения текущей страницы.

Redirect(String)

Перенаправляет запрос по новому адресу и задает новый 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 вызывает End , который вызывает ThreadAbortException исключение после завершения. Это исключение оказывает негативное влияние на производительность веб-приложения. Поэтому рекомендуется вместо этой перегрузки использовать перегрузку HttpResponse.Redirect(String, Boolean) и передать false параметр endResponse , а затем вызвать CompleteRequest метод . Дополнительные сведения см. в описании метода End.

Примечание

Только для мобильных страниц, если приложение использует сеансы без использования файлов cookie или может получать запросы от мобильных устройств, для которых требуются сеансы без файлов cookie, использование тильды (~) в пути может привести к созданию нового сеанса и потенциальной потере данных сеанса. Чтобы задать свойство в мобильном элементе управления с таким путем, как "~/path", разрешите путь с помощью ResolveUrl "~/path", прежде чем присвоить его свойству.

ASP.NET выполняет перенаправление, возвращая код состояния HTTP 302. Альтернативным способом передачи управления на другую страницу 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 для проверка, остается ли клиент, запрашивающий страницу, подключением к серверу. Если IsClientConnected имеет значение true, код вызывает Redirect метод , и клиент просматривает другую страницу. Если IsClientConnected имеет значение false, код вызывает 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-адрес.

При использовании этого метода в обработчике страниц для завершения запроса к одной странице и запуска нового запроса для другой страницы задайте для параметра значение endResponsefalse , а затем вызовите CompleteRequest метод . Если указать true для endResponse параметра , этот метод вызывает End метод для исходного запроса, который создает ThreadAbortException исключение по завершении. Это исключение оказывает негативное влияние на производительность веб-приложения, поэтому рекомендуется передавать falseendResponse параметр . Дополнительные сведения см. в описании метода End.

Примечание

Для мобильных страниц, если приложение использует сеансы без использования файлов cookie или может получать запросы от мобильных устройств, требующих сеансов без файлов cookie, использование тильды (~) в пути может создать новый сеанс и потенциально потерять данные сеанса. Чтобы задать свойство в мобильном элементе управления с таким путем, как "~/path", разрешите путь с помощью ResolveUrl "~/path", прежде чем присвоить его свойству.

ASP.NET выполняет перенаправление, возвращая код состояния HTTP 302. Альтернативным способом передачи управления на другую страницу Transfer является метод . Обычно Transfer этот метод более эффективен, так как он не вызывает круговой путь к клиенту. Дополнительные сведения см. в разделе Практическое руководство. Перенаправление пользователей на другую страницу.

Применяется к