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


Практическое руководство. Перенаправление пользователей на другую страницу

Обновлен: Ноябрь 2007

Возможно, потребуется перенаправить пользователей с одной веб-страницы ASP.NET на другую веб-страницу. Например, это можно сделать при использовании формы с несколькими страницами.

Существует много способов перенаправления на другие страницы, среди которых могут быть следующие:

  • С помощью конфигурации страницы для отправки на другую страницу В этом сценарии пользователь нажимает кнопку, сконфигурированную для отправки на другую страницу. Этот сценарий полезен для многостраничных форм. Однако он требует взаимодействия пользователя. Подробные сведения см. в разделе Межстраничная запись данных на веб-страницах ASP.NET.

  • С помощью динамического использования обозревателя В этом сценарии отправляется команда в обозреватель пользователя, в результате которой обозреватель извлечекает другую страницу. Это позволяет программно перенаправлять на другую страницу. Однако перенаправление создает новый запрос (HTTP GET), и некоторые данные, переданные со страницы источника, будут потеряны.

С помощью динамического использования метода на стороне сервера В этом сценарии сервер просто передает контекст на другую страницу. Преимущество заключается в том, что сведения о контексте распределяются между страницами. Недостаток заключается в том, что обозреватель пользователя не знает о передаче, и журнал обозревателя не обновляется. При обновлении страницы могут быть получены неожиданные результаты. Подробные сведения о распределении контекста страницы во время передачи сервером см. в разделе Практическое руководство. Передача значений между веб-страницами ASP.NET.

Перенаправление пользователя на другую страницу с помощью обозревателя

  1. Установите для свойства BufferOutput объекта Response значение true.

  2. Вызовите метод 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