Бөлісу құралы:


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")
   

Комментарии

Вызов эквивалентен вызову RedirectRedirect со вторым параметром true.

Redirect ThreadAbortException вызывает End исключение при завершении. Это исключение оказывает негативное влияние на производительность веб-приложения. Поэтому мы рекомендуем вместо этой перегрузки использовать 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-адрес (например, ) или относительный URL-адрес (например, http://www.contoso.com/default.aspxDefault.aspx) можно указать для целевого расположения, но некоторые браузеры могут отклонить относительный URL-адрес.

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

Замечание

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

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

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