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-адрес.
При использовании этого метода в обработчике страниц для завершения запроса к одной странице и запуска нового запроса для другой страницы задайте для параметра значение endResponse
false
, а затем вызовите CompleteRequest метод . Если указать true
для endResponse
параметра , этот метод вызывает End метод для исходного запроса, который создает ThreadAbortException исключение по завершении. Это исключение оказывает негативное влияние на производительность веб-приложения, поэтому рекомендуется передавать false
endResponse
параметр . Дополнительные сведения см. в описании метода End.
Примечание
Для мобильных страниц, если приложение использует сеансы без использования файлов cookie или может получать запросы от мобильных устройств, требующих сеансов без файлов cookie, использование тильды (~) в пути может создать новый сеанс и потенциально потерять данные сеанса. Чтобы задать свойство в мобильном элементе управления с таким путем, как "~/path", разрешите путь с помощью ResolveUrl "~/path", прежде чем присвоить его свойству.
ASP.NET выполняет перенаправление, возвращая код состояния HTTP 302. Альтернативным способом передачи управления на другую страницу Transfer является метод . Обычно Transfer этот метод более эффективен, так как он не вызывает круговой путь к клиенту. Дополнительные сведения см. в разделе Практическое руководство. Перенаправление пользователей на другую страницу.