Home Page Home Page Tips & Tricks Come passare dei valori nelle Web Form con ASP.NET con Server.Transfer

Come passare dei valori nelle Web Form con ASP.NET con Server.Transfer


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 MainPage

Poi dobbiamo recuperare il valore dal contesto della nostra pagina e facendo un cast in modo opportuno.

Codice .NET n°1
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.
Copyright © dotNetHell.it 2002-2018
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5