ASP.NET web projelerinde bir sayfa içinde veya başka bir sayfaya geçişte veri transferi yöntemleri kısaca şunlardır: GET, POST, SESSION, APPLICATION, COOKIE, VIEWSTATE, PREVIOUSPAGE ve CONTEXT
Online C# ve VB kod çevrimi için tavsiye link : http://www.carlosag.net/Tools/CodeTranslator
Örnek projenin indirme adresi: http://cid-d0b01df58868413e.office.live.com/self.aspx/Ortak/ornekler/ASPNETdataTransfer.rar
GET: adres çubuğundan gönderilir, 2 KB boyut sınırı vardır ve güvenlik gerektirmeyen durumlarda (arama yaparken) kullanılabilir.
Gönderirken:
Response.Redirect("sayfa2.aspx?yontem1=123qwe")
Okurken:
Label1.Text = Request.QueryString("yontem1")
POST: arka plandan gönderilir, üye girişi gibi durumlarda kullanılabilir.
Gönderirken: Sayfanın kaynağındaki Form1’in method özelliği post seçilir. Gönder düğmesinin PostBackUrl’si hedef sayfa olarak değiştirilir.
<form id="form1" runat="server" method="post"> <asp:TextBox ID="yontem2" runat="server">qwe123</asp:TextBox> <asp:Button ID="Button2" runat="server" PostBackUrl="~/sayfa2.aspx" Text="Gönder" /> </form>
Okurken:
Label2.Text = Request("yontem2")
SESSION: web tarayıcısı kapanana kadar oturum içinde veri saklanır. Genelde üye girişi sonrası bilgi tutmak için kullanılır. İçinde metin, sayı, tarih saklanabildiği gibi dizi de tutulabilir.
Gönderirken:
Session("yontem3") = "12qw3"
Response.Redirect("~/sayfa2.aspx")
Okurken:
Label3.Text = Session("yontem3")
APPLICATION: sunucu kapanana kadar veri saklanır. Ziyaretçi sayacı, sohbet gibi özellikler için kullanılabilir.
Gönderirken:
Application("yontem4") = "1qw23"
Response.Redirect("~/sayfa2.aspx")
Okurken:
Label4.Text = Application("yontem4")
COOKIE: istemci yani yereldeki bir çerez (metin dosyası) içinde saklanan veri. İçine güvenlik gerektiren bilgiler yazılmamalıdır ve çerezlerin tarayıcı ayarlarından kapatılabileceği unutulmamalıdır. Genelde kullanıcı adının hatırlanması gibi durumlarda kullanılabilir.
Gönderirken:
Dim cerez As New HttpCookie("cerezo")
cerez.Values.Add("yontem5", "qwe123c")
cerez.Expires = DateTime.Now.AddDays(1)
Response.Cookies.Add(cerez)
Response.Redirect("~/sayfa2.aspx")
Okurken:
Label5.Text = Request.Cookies("cerezo")("yontem5")
VIEWSTATE: sayfadaki nesneler veya bir değişkeni yollayabiliriz, bilgiyi sadece gönderen sayfa içinde kullanabiliriz. Diğer sayfalar için kalıcı değildir.
Gönderirken:
ViewState("yontem6") = "qwe123v"
Server.Transfer("~/sayfa2.aspx")
Okurken:
Label6.Text = ViewState("yontem6")
PREVIOUSPAGE: bir önceki sayfadaki bir değeri veya nesne özelliğini bu komut ile elde edebiliriz. Okuyan sayfa yenilendiğinde veri silinir.
Gönderirken:
Önceki sayfada yontem7 adında bir metin kutusu olması yeterlidir. Düğme içine:
Server.Transfer("~/sayfa2.aspx")
Okurken:
Dim gelenMetinKutusu As TextBox = CType(PreviousPage.FindControl("yontem7"), TextBox)
Label7.Text = String.Format("{0}", gelenMetinKutusu.Text)
CONTEXT: bir sayfadan diğerine geçici olarak veri göndermenin bir diğer yoludur. Veri okunduktan sonra silinir, yani sayfa yenilendiğinde kalıcı olmaz.
Gönderirken:
Context.Items.Add("yontem8", "qwe123cont")
Server.Transfer("~/sayfa2.aspx")
Okurken:
Label8.Text = Context.Items("yontem8")