2010-04-21 25 views
42

Geçerli sayfaya yönlendirme Server.Transfer() ile şu anda gösterilen sayfaya nasıl yeniden yönlendirme yapabilirim?ASP.Net

Gönderildikten sonra temizlenmiş bir form almak istiyorum.

Aynısını başarmak için başka hangi yöntemleri kullanabilirim?

+1

Gönderildikten sonra yalnızca formun silinmesini istiyorsanız, o zaman tüm alan değerlerinizi en sonunda ur kodunda temizleyin, daha sonra aynı sayfaya yeniden yönlendirin –

cevap

96

Neden Server.Transfer? Response.Redirect(Request.RawUrl), ihtiyacınız olanı alır.

+0

Daha iyi bir seçenek olarak Server.Transfer olduğunu düşünüyorum. Ama çözümün de hile yapıyor. Şimdi Server.Transfer (Request.Path) kullanıyorum; – Fabiano

+11

@Daniel: Bu bir boş gezinti değil. Çoğu zaman, kullanıcı tarayıcınızın sayfa yığındaki son isteğin bir HTTP POST sonucunun olmasını istemezsiniz. Kullanıcılar genellikle bu işlemi yenileyecek ve tekrar edecektir. Aktar bunu düzeltmez, ancak Yönlendirme yapar. – kervin

+6

@Daniel: Post-Yönlendirme-Get modelini tam olarak hiç duydunuz mu? Burada değilse, sizin için bazı bilgiler: http://en.wikipedia.org/wiki/Post/Redirect/Get – epitka

15

http://en.wikipedia.org/wiki/Post/Redirect/Get

ASP.Net içinde bu modeli uygulamak için en yaygın yolu

differences between Redirect and Transfer düşünün Response.Redirect (Request.RawUrl) kullanmaktır. Transfer gerçekten tarayıcıya açık bir form için bildiriyor, sadece temiz bir form döndürüyor. İstediğin şey bu olabilir ya da olmayabilir.

Response.Redirect() çöp toplama değil. Formu Sunucu.Transfer() ile temizleyen ve yeniden yüklemenizi sağlayan bir komut dosyasına gönderirseniz, son eylem bir HTTP POST olduğundan, çoğu tarayıcı tarafından yeniden çoğaltmanız istenir. Bu, kullanıcılarınızın istem dışı olarak bazı eylemleri tekrar etmesine neden olabilir, örn. Daha sonra iptal edilmesi gereken ikinci bir sipariş verin.