Практическое руководство. Перенаправление пользователей на другую страницу
Обновлен: Ноябрь 2007
Возможно, потребуется перенаправить пользователей с одной веб-страницы ASP.NET на другую веб-страницу. Например, это можно сделать при использовании формы с несколькими страницами.
Существует много способов перенаправления на другие страницы, среди которых могут быть следующие:
С помощью конфигурации страницы для отправки на другую страницу В этом сценарии пользователь нажимает кнопку, сконфигурированную для отправки на другую страницу. Этот сценарий полезен для многостраничных форм. Однако он требует взаимодействия пользователя. Подробные сведения см. в разделе Межстраничная запись данных на веб-страницах ASP.NET.
С помощью динамического использования обозревателя В этом сценарии отправляется команда в обозреватель пользователя, в результате которой обозреватель извлечекает другую страницу. Это позволяет программно перенаправлять на другую страницу. Однако перенаправление создает новый запрос (HTTP GET), и некоторые данные, переданные со страницы источника, будут потеряны.
С помощью динамического использования метода на стороне сервера В этом сценарии сервер просто передает контекст на другую страницу. Преимущество заключается в том, что сведения о контексте распределяются между страницами. Недостаток заключается в том, что обозреватель пользователя не знает о передаче, и журнал обозревателя не обновляется. При обновлении страницы могут быть получены неожиданные результаты. Подробные сведения о распределении контекста страницы во время передачи сервером см. в разделе Практическое руководство. Передача значений между веб-страницами ASP.NET.
Перенаправление пользователя на другую страницу с помощью обозревателя
Установите для свойства BufferOutput объекта Response значение true.
Вызовите метод Redirect объекта Response, передав его на URL-адрес страницы, на которую нужно перенаправить пользователей.
В следующем примере кода показано, как перенаправить страницу на основе содержимого локальной переменной UserLanguage, которая задается в любом другом месте.
Response.BufferOutput = True If UserLanguage = "English" Then Response.Redirect("https://www.microsoft.com/gohere/look.htm") ElseIf UserLanguage = "Deutsch" Then Response.Redirect("https://www.microsoft.com/gohere/look_deu.htm") ElseIf UserLanguage = "Español" Then Response.Redirect("https://www.microsoft.com/gohere/look_esp.htm") End If
Response.BufferOutput = true; if (UserLanguage == "English") { Response.Redirect("https://www.microsoft.com/gohere/look.htm"); } else if (UserLanguage == "Deutsch") { Response.Redirect("https://www.microsoft.com/gohere/look_deu.htm"); } else if (UserLanguage == "Español") { Response.Redirect("https://www.microsoft.com/gohere/look_esp.htm"); }
Перенаправление пользователей на другую страницу с помощью метода на стороне сервера
Вызовите метод Transfer, передав имя страницы, на которую нужно перенаправить пользователей.
В следующем примере кода показано, как выполнить перенаправление на другую страницу.
Protected Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Server.Transfer("Page2.aspx", True) End Sub
protected void Button1_Click(object sender, System.EventArgs e) { Server.Transfer("Page2.aspx", true); }
См. также
Задачи
Практическое руководство. Передача значений между веб-страницами ASP.NET