Procedura: reindirizzare gli utenti a un'altra pagina
Aggiornamento: novembre 2007
È possibile che si desideri reindirizzare gli utenti da una pagina Web ASP.NET a un'altra. Ad esempio, è possibile utilizzare un form a più pagine.
Di seguito vengono riportati alcuni modi per reindirizzare le pagine.
Configurare la pagina in modo tale che invii a un'altra In questo scenario, l'utente fa clic sul pulsante configurato per inviare a un'altra pagina. Questo scenario è utile nei form a più pagine. Tuttavia, è richiesta l'interazione dell'utente. Per informazioni, vedere Cross-page posting nelle pagine Web ASP.NET.
Utilizzare in modo dinamico il browser In questo scenario, si invia un comando al browser che richiede al browser di recuperare un'altra pagina. In questo modo, è possibile effettuare il reindirizzamento a un'altra pagina a livello di programmazione. Tuttavia, il reindirizzamento genera una nuova richiesta di tipo HTTP GET e tutti i dati inviati dalla pagina di origine vengono persi.
Utilizzare in modo dinamico un metodo lato server In questo scenario, il server trasferisce semplicemente il contesto a un'altra pagina. Il vantaggio consiste nella possibilità di condividere le informazioni di contesto di pagina tra le pagine. Lo svantaggio è che il browser dell'utente è all'oscuro del trasferimento, per cui la cronologia del browser non viene aggiornata. Se l'utente aggiorna la pagina, potrebbero verificarsi errori. Per informazioni dettagliate sulla condivisione del contesto della pagina durante un trasferimento server, vedere Procedura: passare valori tra pagine Web ASP.NET.
Per reindirizzare l'utente a un'altra pagina utilizzando il browser
Impostare la proprietà BufferOutput dell'oggetto Response su true.
Chiamare il metodo Redirect dell'oggetto Response passandogli l'URL della pagina a cui reindirizzare gli utenti.
Nell'esempio di codice riportato di seguito viene illustrata la procedura di reindirizzamento a una pagina in base al contenuto di una variabile locale, UserLanguage, impostata in un altro punto.
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"); }
Per reindirizzare gli utenti a un'altra pagina utilizzando un metodo lato server
Chiamare il metodo Transfer, passandogli il nome della pagina a cui reindirizzare gli utenti.
Nell'esempio di codice riportato di seguito viene illustrata la procedura di reindirizzamento a un'altra pagina.
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); }