Spesso quando dobbiamo passare dei valori tra le varie pagine del sito utilizziamo la Query String attraverso il metodo
Response.Redirect("pagina.aspx?campo=valore") , ciò comporta diversi svantaggi:
- Primo a livello prestazionale, perchè prevede uno scenario di andata e ritorno
- Passaggio dei valori in chiaro(anche se con tecniche di codifica si può ovviare a questo)
- Nella query si possono passare al massimo 64 KB.
L'unico vantaggio è che la cronologia viene aggiornata e quindi si può tornare indietro.
Quando questo "vantaggio" non ci serve la miglior soluzione per passare ad un'altra pagina del nostro sito è quella di utilizzare il comando
Server.Transfer che come parametro vuole solo il nome della pagina
Es.
Server.Transfer("pagina.aspx")Attraverso questo comando
il Server trasferisce il contesto dell'applicazione nella pagina chiamata.
Dalla pagina chiamata possiamo utilizzare tutte le proprietà e metodi della pagina chiamante, dove essi siano stai definiti come public.
Vediamo come fare per utilizzare il tale comando:
Nella pagina chiamata dobbiamo definire la classe della pagina chiamante
Dim source as MainPagePoi dobbiamo recuperare il valore dal contesto della nostra pagina e facendo un
cast in modo opportuno.
If Not Me.ISPostBack then
Source = Ctype(Context.Handler,MainPage)
End if
Così facendo, ora possiamo recuperare tutti valori delle variabili
public della classe MainPage.