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 обычно более эффективен, так как он не вызывает круговую поездку к клиенту. Дополнительные сведения см. в разделе "Практическое руководство. Перенаправление пользователей на другую страницу".