Merhaba arkadaşlar,
Sayfalar arası yönlendirme yaparken genel olarak kullandığımız Response.Redirect("GidecekSayfa.aspx") metodudur.
Server.Transfer ise başka bir yöntemdir. Bunun farkı sayfa yönlenirken gideceği sayfanın URL'sini explorer'a bildirmemesi ve sayfanın post olmamasıdır.
Mesela Default.aspx'de Server.Transfer("iletisim.aspx"); şeklinde yönlendirme yaptığınız zaman iletisim.aspx'i görüntü olarak getirecektir ama URL'de halen www.xxx.com/default.aspx yazacaktır. Yani bir nevi sayfayı asenkron olarak çağıracaktır.
Server.Transfer metodunun 3 tane overload'u vardır. Biz 1 ve 3'ü inceleyeceğiz çünkü 2nci overload'u ben de denemedim henüz.
Overload 1 (string path):
Yönlendirilecek sayfanın URL'si verilir.
Örn.: Default.aspx
Overload 3 (string path, bool preserveForm):
- İlk parametreye yine yönlendirilecek sayfanın URL'si verilir.
Örn.: Default.aspx
- İkinci parametreye ise true değeri verilirse Request.Form ve Querystring koleksiyonlarını kullanabiliriz, false değeri koleksiyonları(Request.Form ve Querystring) kullanmayacağımız zaman verilebilir.
Mesela iletisim.aspx'de bir form olsun içinde işte txtAdSoyad gibi bir textbox olsun. Sayfa, Server.Transfer("Basarili.aspx", true) şeklinde yönlendirilirse, yönlendirilen sayfada Request.Form["txtAdSoyad"] şeklinde bir önceki sayfadaki txtAdSoyad textbox'ının değerine ulaşabiliriz, yani bu durumda preserveForm değerini true yaparsak koleksiyonlarımıza ulaşabileceğimizi anlamış oluyoruz.