none
Kullanıcıdan nasıl giriş alınmış? RRS feed

  • Soru

  • Merhaba arkadaşlar ben açık akademideki örneği yaparken bir soru aklıma takıldı. Aşağıda bir toplama işleminin kodları var. Tamam, ben bu kodu derleyip çalıştırdığımda güzelce çalışıyor. Toplama veya çarpma işlemlerini yapıyor fakat sorun şurada: Nasıl oldu da kullanıcıdan giriş alınmadan Kullanıcının textbox'a yazdığı sayılar okundu? Yani c++ da int sayi1; cin>>sayi1; gibi olurken burada nasıl oldu da kullanıcı bir giriş yapınca işlemin sonucu doğru çıktı? Lütfen yardım.

        protected void Page_Load(object sender, EventArgs a)
        {

        }
        protected void CommandMath(object sender, CommandEventArgs a)
        {
            int sayi1 = int.Parse(TextBox1.Text);
            int sayi2 = int.Parse(TextBox2.Text);
            int sonuc = 0;

            switch(a.CommandName)
            {
                case "Topla":
                    sonuc = sayi1+sayi2;
                    break;
                case "Carp":
                    sonuc = sayi1*sayi2;
                    break;
            }
            Label1.Text = sonuc.ToString();
        }
    }

    11 Temmuz 2014 Cuma 14:22

Yanıtlar

  • Console.WriteLine();  dediğinde kullanıcıdan "Sadece konsol uygulamalarında geçerlidir" veri girmesi için programı bekletir veri girildiğinde enter a basılır ve böylece veri okunmuş olur.

      " protected void CommandMath(object sender, CommandEventArgs a)" 

    dediğinizde Matematik Sınıfını çağırmış oluyorsunuz (CommandMath sınıfı)

    Peki diyeceksiniz ki , ben hala anlamadım nasıl okur diye şöyle : 

    ViewState Sorunuzun CEVABI !

    ViewState Sayfanızı ilk açtığınızda sağ tıklayın ve kaynak kodlarını inceleyin

    <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJNzzxdEEgcTTRDceGRKSpuLejDHB6P+Drtsa2aqA==" />Gibi bir kod göreceksiniz. 

    Şimdi sayfanıza verilerinizi girin ve Butona basın 

    Sonuç ekranı geldiğinde ViewState içeriğine yeniden bakın . 

    <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUZyCauWTRAqA==" />

    ViewState Değişti!

    Siz sayfanızı ilk açtığınızda arka tarafta view  state ile veriler tutulmaktadır. Siz değişiklklerinizi yaptıktan sonra sayfanızı tekrar POST ettiğinizde yeni veriler ViewState içine gömülür ve işlem yapılacaksa veriler ViewState içinden kullanılır. 

    Yani veri okuma işlemi sizin adınıza arka tarafta ViewState tarafından zaten yapıldığı için tekrar tekrar veri oku demenize gerek yok ;)

    • Yanıt Olarak İşaretleyen Özgür Tekbaş 17 Temmuz 2014 Perşembe 14:12
    12 Temmuz 2014 Cumartesi 07:28

Tüm Yanıtlar

  • Adam POST etti ya sayfayı daha nasıl göndersin? Biraz HTTP nedir diye araştırma yapmalısın. Sonra c# ve OOP üzerine temel bilgilerinizi yenilemelisin. 
    11 Temmuz 2014 Cuma 14:34
    Moderatör
  • Adam POST etti ya sayfayı daha nasıl göndersin? Biraz HTTP nedir diye araştırma yapmalısın. Sonra c# ve OOP üzerine temel bilgilerinizi yenilemelisin. 

    Dediklerinizi anladım teşekkürler fakat c++ da giriş cin ile alınırken c# da Console.WriteLine(); komutu ile alınıyor. Peki burada Console.WriteLine(); komutu olmadığı halde nasıl bu kodları sunucuya gönderip html olarak sayfada oluşturduğunda ve biz sayfaya sayıları girip butona tıkladığımızda bize sonuç veriyor? Yani şöyle anlatayım. Benim projemin son hali resimdeki gibi. Ve ben textboxa bir şeyler girdiğimde tıpkı Console.WriteLine(); komutu gibi işliyor. 

    http://i.hizliresim.com/32Rvj9.png

    • Düzenleyen cgnkyc123 11 Temmuz 2014 Cuma 14:54
    11 Temmuz 2014 Cuma 14:53
  • Console.WriteLine();  dediğinde kullanıcıdan "Sadece konsol uygulamalarında geçerlidir" veri girmesi için programı bekletir veri girildiğinde enter a basılır ve böylece veri okunmuş olur.

      " protected void CommandMath(object sender, CommandEventArgs a)" 

    dediğinizde Matematik Sınıfını çağırmış oluyorsunuz (CommandMath sınıfı)

    Peki diyeceksiniz ki , ben hala anlamadım nasıl okur diye şöyle : 

    ViewState Sorunuzun CEVABI !

    ViewState Sayfanızı ilk açtığınızda sağ tıklayın ve kaynak kodlarını inceleyin

    <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJNzzxdEEgcTTRDceGRKSpuLejDHB6P+Drtsa2aqA==" />Gibi bir kod göreceksiniz. 

    Şimdi sayfanıza verilerinizi girin ve Butona basın 

    Sonuç ekranı geldiğinde ViewState içeriğine yeniden bakın . 

    <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUZyCauWTRAqA==" />

    ViewState Değişti!

    Siz sayfanızı ilk açtığınızda arka tarafta view  state ile veriler tutulmaktadır. Siz değişiklklerinizi yaptıktan sonra sayfanızı tekrar POST ettiğinizde yeni veriler ViewState içine gömülür ve işlem yapılacaksa veriler ViewState içinden kullanılır. 

    Yani veri okuma işlemi sizin adınıza arka tarafta ViewState tarafından zaten yapıldığı için tekrar tekrar veri oku demenize gerek yok ;)

    • Yanıt Olarak İşaretleyen Özgür Tekbaş 17 Temmuz 2014 Perşembe 14:12
    12 Temmuz 2014 Cumartesi 07:28
  • Console.WriteLine();  dediğinde kullanıcıdan "Sadece konsol uygulamalarında geçerlidir" veri girmesi için programı bekletir veri girildiğinde enter a basılır ve böylece veri okunmuş olur.

      " protected void CommandMath(object sender, CommandEventArgs a)" 

    dediğinizde Matematik Sınıfını çağırmış oluyorsunuz (CommandMath sınıfı)

    Peki diyeceksiniz ki , ben hala anlamadım nasıl okur diye şöyle : 

    ViewState Sorunuzun CEVABI !

    ViewState Sayfanızı ilk açtığınızda sağ tıklayın ve kaynak kodlarını inceleyin

    <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJNzzxdEEgcTTRDceGRKSpuLejDHB6P+Drtsa2aqA==" />Gibi bir kod göreceksiniz. 

    Şimdi sayfanıza verilerinizi girin ve Butona basın 

    Sonuç ekranı geldiğinde ViewState içeriğine yeniden bakın . 

    <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUZyCauWTRAqA==" />

    ViewState Değişti!

    Siz sayfanızı ilk açtığınızda arka tarafta view  state ile veriler tutulmaktadır. Siz değişiklklerinizi yaptıktan sonra sayfanızı tekrar POST ettiğinizde yeni veriler ViewState içine gömülür ve işlem yapılacaksa veriler ViewState içinden kullanılır. 

    Yani veri okuma işlemi sizin adınıza arka tarafta ViewState tarafından zaten yapıldığı için tekrar tekrar veri oku demenize gerek yok ;)

    Teşekkürler uğraşınız için. Bu soru aklımı karıştırıyordu ve artık çözdüm. İyiki konuyu açmışım yoksa işin içinden kalkamazmışım:)
    12 Temmuz 2014 Cumartesi 17:21