POST Methoduyla sayfaya yönlenmek

Uzunca sayılacak bir aradan sonra tekrar merhaba. İşlerin yoğunluğundan dolayı bir süredir yazamıyordum. Bir projede kullanmak üzere şöyle bir yönteme ihtiyacım oldu.

Şimdi düşünün bir web sayfanız var ve bu web sayfasından başka bir web sayfasına belli değişkenlere değerler göndererek göndermiş olduğunuz değerlere göre yönlendiğiniz web sayfasının sizin ekranınıza yüklenmesini yani tamamen açılmasını istiyorsunuz. Normalde bu işte ne var dediğinizi duyar gibiyim. Bunun en basit yöntemi de aslında GET metodunu kullanıp değişken ve değerleri sayfayı çağırırken geçmenizdir. Fakat bazı siteler yada bağlantı sağlayacağınız yerler bu şekilde verilerin açıkta gelmesini istemezler işte böyle durumlarda POST metodunu kullanarak sayfaya ulaşmanız ve kendi ekranınızda yüklenmesini sağlamanız gerekir.

Bu yönteme en iyi örnek olarak da benim projede geliştirdiğim kodu veriyorum. Kodu vermeden öncede iki adet sayfa hazırlamanızı bu kodu “Default.aspx” ismindeki sayfanıza eklemenizi öneriyorum;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Collections.Specialized;
using System.Web.Mvc;
using System.Text;
 
namespace PostMethod_Test
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string url = "ReadPost.aspx";
            NameValueCollection data = new NameValueCollection();
            data.Add("recordId", "ASHD123198234234HDGS");
            data.Add("phoneNumber", "5326665544");
 
            //Set a name for the form
            string formID = "PostForm";
            //Build the form using the specified data to be posted.
            StringBuilder strForm = new StringBuilder();
            strForm.Append("<form id=\"" + formID + "\" name=\"" +
                           formID + "\" action=\"" + url +
                           "\" method=\"POST\">");
 
            foreach (string key in data)
            {
                strForm.Append("<input type=\"hidden\" name=\"" + key +
                               "\" value=\"" + data[key] + "\">");
            }
 
            strForm.Append("</form>");
            //Build the JavaScript which will do the Posting operation.
            StringBuilder strScript = new StringBuilder();
            strScript.Append("<script language=\"javascript\">");
            strScript.Append("var v" + formID + " = document." +
                             formID + ";");
            strScript.Append("v" + formID + ".submit();");
            strScript.Append("</script>");
            //Return the form and the script concatenated.
            //(The order is important, Form then JavaScript)
            this.Page.Controls.Add(new LiteralControl(strForm.ToString() + strScript.ToString()));
        }
    }
}

Diğer sayfaya ise aşağıdaki kodu eklemenizi öneriyorum. Böylece verinin iletilip iletilmediğini görmüş olacaksınız.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
 
namespace PostMethod_Test
{
    public partial class ReadPost : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                Response.Write(Request.Form["recordId"].ToString() + "<br />");
                Response.Write(Request.Form["phoneNumber"].ToString() + "<br />");
            }
            catch (Exception ex)
            {
                Response.Write(ex.Message);
            }
        }
    }
}
Etiket(ler): , , .Yer işareti koy Kalıcı Bağlantı.

Bir cevap yazın

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