ASP.Net ile Redirect Post işlemi

Merhaba, kısa bir zaman önce çalıştığım işyerindeki projede bir problem ile karşılaştım daha doğrusu yapmak istediğim şeyi en az kod yazarak ve pratik şekilde çözmek için yöntemler araştırmaya başladım. Yapmak istediğim şey asp.net tarafında bir sayfaya redirect ile yönlendirme yaparken aynı zamanda sayfaya form verisi gönderebilmekti. bunu jquery ile kolaylıkla yapabiliyoruz zaten ama bir görev için farklı teknolojiler kullanmayı pek sevmiyorum olabildiğince toplu düzenli kod yazmak daha profesyonel geliyor. velhasıl araştırmalarım sonucunda aşağıdaki bir yapı buldum. üzerinde biraz güncellemeler yapıp kısalttım

protected void Page_Load(object sender, EventArgs e)
  {
     NameValueCollection data = new NameValueCollection();
     data.Add("adi", "mustafa tayyip");
     data.Add("soyadi", "yetiş");
     Response.Write(RedirectAndPOST("/WebForm2.aspx", data));
     Response.End();
  }
private String RedirectAndPOST(string url, NameValueCollection data)
  {
     StringBuilder strForm = new StringBuilder();
     strForm.Append("<form id=\"PostForm\" name=\"PostForm\" action=\"" + url + "\" method=\"POST\">");
     foreach (string key in data) strForm.Append("<input type=\"hidden\" name=\"" + key + "\" value=\"" + data[key] + "\">");
     strForm.Append("</form>");
     return strForm.ToString() + " <script>document.PostForm.submit();</script>";
  }

Mantık çok basit aslında. redirect yerine write işlemi yapılıp sayfaya html form ve bu formu belirlenen sayfaya post edecek olan javascript kodu ekleniyor. form içerisindeki input verileri ise namevaluecollection sınıfından türeyen bir değişkenden alınıyor ve bu kod sayfaya bastırıldığında javascript formu otomatik olarak post ediyor tabii ki bu kullanıcının farkedemeyeceği bir hızda oluyor ve dolaylı olarak asp.net tarafında yönlendirme yaparken aynı zamanda form verisi de gönderiyoruz. göndermek istediğimiz veriyi pekala querystring ile de gönderebilirdik ama göndermek istediğimiz veriyi gizli göndermek istiyorsak bu yöntem işimizi kolaylaştıracaktır. Umarım faydalı olmuştur.

Mustafa Tayyip YETİŞ
Yazılım Geliştirme Uzmanı

0.0 Ort. (0% puan) - 0 oy

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir