Ana Sayfa » Ders Notları ve Örnekler » ASP.NET » İlk Sayfamız ve Form

Uyarılar :
  • Bu sayfada yazılanlar yeniden yayınlanamaz.
  • Bu örnek ders sırasındaki anlatımlardan derlenmiştir. Özellikle bir makale şeklinde yazılmamıştır. Bilgilerde eksiklikler bulunabilir.

Örnek :

<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
    void Page_Load(Object o, EventArgs e)
    {
        Response.Write("Merhaba ");
        Response.Write(Request.Form["ittAdi"]);
    }
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    Adınızı yazın :<input type="text" name="ittAdi" /><br />
    <input type="submit" />
    </form>
</body>
</html>

Klasik bir ASP.NET web sayfası 3 bölümden oluşur. Bunlar;

1. Sayfa üstü bildirimler. Örneğimizde;

    <%@ Page Language="C#" %>

2. Sunucu tarafından çalıştırılacak kodların bulunduğu <script runat="server"> ile başlayan bölüm. Örneğimizde;

    <script runat="server">
        void Page_Load(Object o, EventArgs e)
        {
            Response.Write("Merhaba ");
            Response.Write(Request.Form["ittAdi"]);
        }
    </script>

(Buradaki RUNAT özelliğindeki SERVER değeri, bu SCRIPT bloğunun sunucu tarafından çalıştırılacağını / dikkate alınacağını belirtir. Bu özellik ve değer ASP.NET sayfalarında sık sık karşınıza çıkacaktır.)

3. HTML etiketiyle başlayan HTML bölümü ve ASP.NET kontrolleri (Örnekteki, runat="server" özelliğine sahip HEAD ve FORM etiketleri). Örneğimizde;

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    Adınızı yazın :<input type="text" name="ittAdi" /><br />
    <input type="submit" />
    </form>
</body>
</html>

ASP.NET sayfaları etkileşimli sayfalardır. Bir ASP.NET sayfasına istek yapıldığında, içindeki kodlar çalıştırılarak istek yapan ziyaretçiye, ziyaretçinin isteğine veya yapılan işe göre yeni bir sayfa gönderilir. Bu sayfada sunucu tarafından çalıştırılan <script runat="server"> bölümündeki program kodları gönderilmez, runat="server" özelliği bulunan etiket ve kontroller ise (Örn. <form runat="server">) duruma göre değiştirilerek gönderilir.

Aşağıda, üstteki sayfanın metin kutusuna "Ahmet" yazılıp SUBMIT tuşuyla form gönderildikten sonra kodlar çalıştırıldığında üretilen ve istemcinin tarayıcısına gönderilen HTML çıktısı verilmiştir. İnceleyiniz...

Merhaba Ahmet
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head><title>
	Untitled Page
</title></head>
<body>
    <form name="form1" method="post" action="aaa.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTUxMzcyMjQyN2Rk8IljykCHaQQzLGKbCkeMbZVTwV4=" />
</div>
    Adınızı yazın :<input type="text" name="ittAdi" /><br />
    <input type="submit" />
    </form>
</body>
</html>

ASP.NET sayfalarına ASP.NET Form Sayfaları da denir. Her ASP.NET sayfası bir tane FORM etiketi içerir. Daha önce görsel programlama ile çalışmış olanlar için FORM, Visual Basic, Delphi vb. uygulama geliştirme ortamlarında kullanılan formu karşılamaktadır.

    <form id="form1" runat="server">
    .
    .
    </form>

Form etiketinin içine form elemanları yerleştirilir. Form elemanları etiketin dışına konursa işlem görmezler. Örneğimizde form etiketinin içinde bir tane INPUT TYPE="text" metin kutusu ve bir tane de SUBMIT tuşu kullanılmaktadır. ASP.NET'in kendine özgü HTML ve Web Kontrolleri vardır. Ancak burada olduğu gibi HTML Form Etiketleri de form elemanı olarak kullanılabilir.

Bilindiği gibi HTML Form etiketinin ACTION ve METHOD gibi bazı özellikleri de bulunmaktadır. Ancak bir ASP.NET sayfasında bu özellikleri çoğunlukla kullanmıyoruz. ASP.NET sayfaları çıktı olarak görülenden farklı bir HTML kodu üretir. Ve ürettiği bu kodda FORM etiketine ACTION ve METHOD özelliklerini de kendisi ekler. ACTION özelliği genellikle sayfanın kendisi, METHOD özelliği ise aksini belirtmediğimiz sürece POST'dur. Bu eklemeleri üstteki HTML çıktısı örneğinde görebilirsiniz.

    void Page_Load(Object o, EventArgs e)
    {
    .
    .
    }

Page_Load yordamı (prosedürü) bir ASP.NET web sayfası her istendiğinde otomatik olarak çalıştırılır. Ayrıca çalıştırılması için bu yordamı çağırmamız gerekmez. Bu nedenle bu yordamı oluşturup, sayfa istendiğinde çalıştırılmasını istediğimiz kodları buraya yazıyoruz.

        Response.Write("Merhaba ");

Response sınıfı sayfamızın cevaplarını içerir. Bu sınıfı sayfa istendiğinde kendiliğinden oluşturulan Page nesnesinin bir üyesidir. Bu ifade Page.Response şeklinde de yazılabilir. Ancak Page nesnesi o andaki sayfaya işaret ettiğinden, yani içinde çalıştığımız nesne olduğundan ayrıca belirtilmese de olur (Page sınıfı ayrıca incelecektir). Response sınıfının Write metodu, çıktıya parantez içinde verdiğimiz şeyi yazdırır. Biz de bu özelliği kullanarak çıktıya (sayfa istendiğinde oluşturulan ve karşı tarafa gönderilen yeniden biçimlendirilmiş bir HTML belgesi) "Merhaba " metnini yazdırıyoruz.

        Response.Write(Request.Form["ittAdi"]);

Request sınıfı sayfamıza yapılan istekleri içerir. Bu sınıf da üstte bahsedilen Page nesnesinin bir üyesidir ve Response'da olduğu gibi Page.Request şeklinde de yapılabilir. Request sınıfının Form özelliği, sayfaya gönderilen tüm form verisini (metin kutularına yazılanlar, onay ve radyo tuşlarının seçilme durumları vb.) içeren bir koleksiyondur. Bu koleksiyonda gönderilen verileri içeren etiketlerin (Örnekte ittAdi) adları verildiğinde değerleri elde edilir. Yani Request.Form["ittAdi"] ifadesi ittAdi isimli INPUT TYPE="text" etiketindeki değerini verecektir.

İletişim : hazirsite@gmail.com