Server.Transfer vs Response.Redirect
Server dan Response kedua-duanya adalah objek dalam ASP.NET. Objek pelayan menyediakan kaedah dan sifat untuk pelbagai tugas yang berkaitan dengan pelayan. Pemindahan adalah kaedah objek Pelayan dan ia menghantar maklumat keadaan semasa ke fail .asp yang lain untuk diproses. Objek tindak balas menerangkan kaedah dan sifat yang berkaitan dengan respons server. Redirect adalah kaedah objek Response dan ia menghantar mesej ke penyemak imbas menjadikannya tersambung ke URL lain. Walaupun kedua-dua Server.Transfer dan Response.Redirect boleh digunakan untuk memindahkan pengguna dari satu halaman ke halaman lain, mereka berbeza dengan cara mereka sebenarnya melakukan tugas ini.
Apakah Response.Redirect?
Redirect adalah kaedah dalam objek Response. Apabila kaedah Respon dipanggil, ia menghantar kod HTTP 302 dan URL halaman web yang diminta ke penyemak imbas pengguna. Kod HTTP 302 memberitahu pelayar pengguna bahawa sumber yang diminta terletak di bawah URL yang berbeza. Apabila penyemak imbas menerima kod tersebut, ia membuka sumber di lokasi baru. Halaman web yang diminta boleh tinggal di pelayan yang sama seperti halaman yang berisi permintaan atau mungkin berada di server lain. Apabila meminta halaman web yang berada pada pelayan yang sama dengan halaman semasa, Kaedah tindak balas boleh digunakan seperti berikut:
Response.Redirect ("nextPage.html");
Apabila meminta halaman web bermastautin di pelayan lain, kaedah Respon boleh digunakan seperti berikut:
Response.Redirect ("http://www.newServer.com/newPage.aspx");
Apa itu Server.Transfer?
Seperti yang dinyatakan sebelum ini, Pemindahan adalah kaedah Objek Server. Apabila kaedah Pindahan dipanggil, permintaan asal dimodifikasi untuk dipindahkan ke beberapa halaman lain dalam pelayan yang sama. Apabila halaman baru diminta menggunakan Server.Transfer, URL yang ditunjukkan dalam pelayar web pengguna tidak berubah. Ini kerana pemindahan berlaku di sisi pelayan dan penyemak imbas tidak mempunyai pengetahuan mengenai pemindahan itu. Dengan menggunakan beban kedua untuk Server.Transfer (jalur rentetan, bool preserveForm) dan menetapkan parameter kedua sebagai benar, pemboleh ubah bentuk yang dipaparkan dan string pertanyaan boleh dibuat tersedia pada halaman kedua.
Apakah perbezaan antara Server.Transfer dan Response.Redirect?
Walaupun kedua-dua Server.Transfer dan Response.Redirect boleh digunakan untuk memindahkan pengguna dari satu halaman ke halaman lain, terdapat beberapa perbezaan antara kedua-dua kaedah tersebut. Selain perbezaan sintaksis yang jelas, Response.Redirect membuat perjalanan balik ke pelayan, sementara Server.Transfer mengubah fokus pelayan web ke laman web yang berbeza. Oleh itu, dengan menggunakan Server.Transfer, sumber pelayan dapat dipelihara. Sebaliknya Response.Redirect boleh digunakan untuk mengarahkan pengguna ke laman web di pelayan lain sedangkan Server.Transfer hanya boleh digunakan untuk mengalihkan pengguna ke laman web pada pelayan yang sama. Juga dengan menggunakan Server.Transfer, sifat halaman sebelumnya boleh diakses oleh halaman baru tetapi ini tidak mungkin dengan Response.Redirect. Di samping itu, Response.Redirect mengubah URL dalam bar alamat penyemak imbas apabila halaman baru diakses tetapi ketika menggunakan Server.Transfer URL asal disimpan dan kandungan halaman hanya diganti. Jadi pengguna tidak boleh menggunakannya untuk menandai halaman baru.