Merhaba arkadaşlar,
Asp.Net te kullandığım ve sizinle de paylaşmak istediğim bir konu ile daha beraberiz. Bazı durumlarda bir sayfada işlem yapıldıktan sonra bir kaç saniye o sayfada kalıp daha sonra başka sayfaya yönlendirme yapmamız gerekebilir. Örneğin alışveriş yaptığınız bir e-ticaret sitesi düşünün, sepeti onayladınız ve ödeme sayfasındasınız. Ödeme işlemini tamamla butonuna bastığınız zaman eğer işleminiz başarılı ise bir kaç saniye işleminiz başarılı mesajı gördükten sonra Ana sayfaya veya Sipariş sayfanıza yönlendirilebilirsiniz. Yada işleminiz başarılı olmadı ödemenizde bir sorun yaşandıysa hata mesajını görür yine kısa bir süre sonra tekrar ödeme sayfasına yönlendirilebilirsiniz.
Peki 5 saniye sonra başka sayfaya yönlendirilme işlemi nasıl yapılır ? Bu işlemi Meta Tag ı kullanarak gerçekleştirebiliriz. Meta Tag ı html içerisinde de kullanabiliriz code behindeda da kullanabiliriz. Html içerisinde belli süre içerisinde sayfayı yenilemek için aşağıdaki gibi kullanılır.
1 2 3 4 |
//Bu kod ile 10 saniyede bir (content="10" olduğu için) sayfa yenilenir. <meta http-equiv="refresh" content="10"> |
Amacımız sayfayı yenilemek değil de başka sayfaya yönlendirmek ise aşağıdaki gibi kullanırız.
1 2 3 4 |
// 10 saniye sonra hakkımda sayfasına yönlendirir. <meta http-equiv="refresh" content="10;url=https://www.nurkozan.com/hakkimda/"> |
Meta Tag ın C# içinde kullanımı için ise ürettiğimiz HtmlMeta nesnesine gerekli değerleri vermemiz gerekir. Kodu nereye yazdığımıza bağlı olarak bu kod çalıştırılır ve 5 saniye sonra yeni sayfaya yönlendirilir. Eğer kodu Page_Load a yazarsak sayfa yüklendikten 5 sn sonra, veya bir butonun Click olayına yazdıysak butona tıklandıktan 5 sn sonra işlem gerçekleşir.
1 2 3 4 5 6 |
HtmlMeta meta = new HtmlMeta(); meta.HttpEquiv = "Refresh"; meta.Content = "2;url=/Default.aspx"; this.Page.Controls.Add(meta); |
Otomatik sayfa Yenileme veya Yönlendirme işlemi bu şekilde. Soru ve görüşleriniz için yorum yapabilirsiniz. Kolay gelsin 🙂