Date Image Saturday, January 9, 2010 | Kategoriler | Asp.Net, Tümü

Asp.Net Post Data Göndermek ve Okumak(method=post)

     Web geliştiricilerinin en çok kullandığı veri gönderme metotlarından biri Get metodudur. Get metodu ile veri adres satırında bir başka sayfaya taşınır. Bazen adres satırında veriyi göstermeden işlemler yapmak isteriz. İşte bu noktada başvurabileceğimiz yöntemlerden biri, Post metodunu kullanmak olacaktır. Post metodunu kullanma için sayfamıza bir form ve html input kontrolleri eklememiz yeterli olacaktır. Tabi bir de form'un action ve method attribute lerini de vermek gerekir.

   Hem uzun zamandır kullanmadığım bir yöntem olduğundan hatırlamak amaçlı hem de bilmeyenler için bir fikir olması amaçlı olarak  bu konuyla ilgili bir örnek yapmak istedim.

   Bir web application projesi açtıktan sonra, default.aspx e aşağıdaki gibi bir form ekledim.

<form id="dataForm1" action="GetPostData.aspx" method="post">

    <table>

        <tr>

            <td>Ad</td>

            <td>

                <input id="txtName" type="text" name="txtName" /></td>

        </tr>

        <tr>

            <td>Soyad</td>

            <td>

                <input id="txtSurname" type="text" name="txtSurname" /></td>

        </tr>

        <tr>

            <td colspan="2" align="right">

                <input id="btnSubmit" type="submit" value="Gönder" /></td>

        </tr>

    </table>

</form>

    Gördüğünüz gibi , bir form ekleyip action adresini verinin gönderileceği sayfanın adresini veriyoruz ve methodun post olduğunu belirtiyoruz. Gerisi zaten html. Bir tablo ve içerisinde input text ve input submit button.

 empty formOluşan formun görünümü

   Sıra geldi post la gelen datalarımızı alıp görüntüleyecek olan sayfamızın tasarımına. Aslında ben tasarım yapmayacağım. CodeBehind tarafında gelen post datayı alıp ekrana response edeceğim. Bunu dışında gelen dataya göre bir grid ya da bir form da doldurulabilir.

   Projeye GetPostData.aspx adında bir web form ekliyorum. Bu sayfa ismini default.aspx sayfasındaki formun action bilgisine yazmıştık. Şimdi GetPostData.aspx sayfamızın PageLoad event ında gelen verileri alıp ekrana basacağız.

  

string data = string.Format("Ad : {0}<br/>Soyad : {1}",

                               Request.Form["txtName"],

                               Request.Form["txtSurname"]);

            Response.Write(data);

   Gördüğünüz gibi Form nesnesi aslında bir koleksiyondur ve bu koleksiyondaki key değeri de bizim formun içine eklediğimiz input text kontrollerinin name değerleridir. Bu şekilde verileri alıp ekrana yazdırdık.

   Burada farklı olarak, Form koleksiyonunu herseferinde almak yerine, bir değişkene atmak mantıklı ve kullanışlı olabilir.

NameValueCollection form = Request.Form;

string data = string.Format("Ad : {0}<br/>Soyad : {1}",

                                       form["txtName"],

                                       form["txtSurname"]);

Response.Write(data);

   Form nesnesi sadece get edilebilen geriye NameValueCollection tipi döndüren bir propertydir.

   Şimdi default.aspx sayfasını açıp, alanları doldurduktan sonra gönder butonuna basalım ve sonucu görelim.

 Full Post Form

   Gönder butonuna bastığımızda textlere girmiş olduğumuz veriler Form koleksiyonuna eklenecektir. Koleksiyona name verisi olarak textin name özelliği, value verisi olarak da textin value değeri atanacaktır. Sonrasında ise formun action değerine girdiğimiz sayfaya yönlendirilecektir.

    Post Data ResultSonuç yandaki gibidir. Görüşmek üzere...

Etiketler :