mehmetduran.com - Paylaşmak Güzeldir...
Asp.net'te Generic Handler ile Ajax İşlemleri
Bu yazımda Generic Handler ile Ajax işlemlerini nasıl yapacağımızı anlatmaya çalışacağım. Daha önce Asp.net ile Ajax işlemleri için birkaç farklı yöntem göstermiştim. Şimdi ise Generic Handler (.ashx) ile Ajax işlemleri gerçekleştireceğiz. Generic Handler, IHttpHandler sınıfını miras alan ve genelde HTTP üzerinden işlem yapan bir sınıf olarak açıklayabiliriz. Ajax işlemleri için bu sınıfı kullanacağız. Ancak diğer yöntemlere göre burada farklı bir durum var. Generic Handler ile Ajax işlemlerinde veri tipi yok. Diğer yöntemlerde veri tipi json idi. Şimdi Generic Handler ile Ajax işlemi için yapacağımız kodlamalara kısaca göz atalım.

Öncelikle yazacağımız Jquery ile Ajax metodu kodlarımıza bakalım.

  function al()
  {
    $("#load").show();
    $.ajax({
      type: "POST",
      url: "ajax.ashx",
      //data ile parametre belirleyebiliyoruz.
      //querystring mantığı diyebiliriz.
      data: "numara=5&isim=mehmet",
      success: function(msg){
        $("#load").hide();
        //dönen sonuç json tipinde olmadığı için
        //direk olarak alıyoruz ve kullanıyoruz.
        $("#sonuc").html(msg);
      }
    });
  }

Jquery kodlarımızda dikkat edeceğimiz nokta yapılan işlemlerde kullanılan veri tipi json olmadığı için data kısmında ve Ajax işlemi sonucunda elde edeceğimiz verileri alırken yapacağımız kodlamaya dikkat etmeliyiz.(Dönen veri json tipinde ise msg.d olarak, verinin tip yok ise direk olarak msg şeklinde alabiliyoruz.) Daha sonra ise istekte bulunacağımız Generic Handler dosyamızın kodlarına bakalım.

<%@ WebHandler Language="C#" Class="ajax" %>
using System;
using System.Web;
using System.Web.UI;
using System.Web.SessionState;
public class ajax : IHttpHandler
{
  public void ProcessRequest(HttpContext context)
  {
    System.Threading.Thread.Sleep(1000);
    context.Response.Write("Numara : " + context.Request["numara"]);
    context.Response.Write("  İsim : " + context.Request["isim"]);
    context.Response.Write("  " + DateTime.Now.ToString("HH:mm:ss"));
  }
 
  public bool IsReusable
  {
    get
    {
      return false;
    }
  }
 
}

Görüldüğü Generic Handler kodlarımız ise böyle. Örnek olması açısından basit birkaç işlem yaptım. Ajax metodunda data kısmında gönderdiğimiz parametre değerlerini aldım ve ayrıca zaman bilgisini yazdırdım. Ancak bu yöntem çok daha kullanışlı ve çok faydalı işlemler yapabiliriz. Mesela Ajax ile dosya upload etmek için bu yöntem kullanılabilir. Umarım bu konu ile ilgili çalışmalar yapar ve ne zamandır yapmak istediğim olayı da gerçekleştiririm.

Projelerimize Generic Handler (.ashx uzantılı) dosyası eklemek için projemizde Add New Item deyip Generic Handler sekmesini seçmeliyiz. 

Generic Handler ile yapmış olduğum basit örneği buradan görebilirsiniz. Örnek dosyaları kodların tamamını verdiğim için paylaşmıyorum.

İyi Çalışmalar!
Bookmark and Share
Bu Yazıyı Değerlendirin.
Konuyla İlgili Olabilecek Diğer Yazılar jQuery Ajax ile Filtreleme İşlemlerinde Zamanlama Kullanma Oylama (Rating) Bölümü Hazır Sudoku Uygulamam (MDSudoku v1.0) Jquery ve Asp.net MVC ile Ajax İşlemleri Jquery ile Asp.net Sayfasına Ajax İsteğinde Bulunma
Yorumlar
Yorum Yaz
RSS Yorum Takibi
EmrE TURAN 15 Şubat Pazar 2009 13:19 #1
Kardeşim Handlerla işlem yapmak daha hoş olmuş. Sormak istediğim. Bu yapıyla nasıl file upload yapabiliriz ? Onunla ilgili bir örnek yaparsan veya mantığı buradan anlatabilirsen çok iyi olur.
Mehmet Duran 15 Şubat Pazar 2009 13:21 #2
Merhaba. Yazımda bende o olayı yapmak istediğimi belirttim. Henüz Ajax ile upload olayına bakabilmiş değilim. Ancak şu sıralar bakmayı düşünüyorum. Eğer başarıp yapabilirsem sitemde paylaşırım.
metin taçol 03 Haziran Çarşamba 2009 00:25 #3
merhaba, internetten ashx uzantılı dosyaları göremiyorum. Hangi programı indirmem gerekiyor, yada bilgisayarda ayarları varmı
Mehmet Duran 03 Haziran Çarşamba 2009 08:47 #4
Göremiyorum derken yapmak istediğiniz nedir? Bu dosya kod tarafında bulunan kodları çalıştıran ve ekrana çıktı veren dosyalar. Tarayıcı ile herhangi bir ashx dosyasını görüntüleyebilirsiniz.
Jenk 16 Mart Salı 2010 02:12 #5
Selamlar, jQuery Accordion kullaniyorum. 4-5 adet item var. bu item'lar veritabaninindan donen resultset e gore gelmeli. Bu yuzden sayfa yuklenirken hepsini tek seferde degilde , tıklandıgında veritababindan okuyup, ona gore getirmek istiyorum yardimci olabilir misin.? tesekkurler
Mehmet Duran 16 Mart Salı 2010 23:47 #6
Merhaba. Eğer accordion yapısını incelemiş isen bu yapıda her ana bölüme tıklandığında alt alan açılır. Senin yapmak istediğin uygulamada ise buradaki alt alanın içeriği açılarak değil de Ajax işleminin sonucuna göre dolacak. Yani her ana bölüme tıklandığında Ajax isteğinde bulunacaksın ve tıklanan ana bölümün altına gelmesi gereken içeriği Ajax isteği ile alıp, gerekli bölüme yazdıracaksın.
İsim :
Site :
Yorum :

Buradan bu yazıya ait yorumları RSS olarak takip edebilirsiniz.

Bu servis ile yazılara eklenen yorumları RSS ile takip ederek konu ile ilgili başkaları tarafından yapılan yorumları veya konuyla ilgili sorduğunuz sorulara verilen cevapları görebilirsiniz.
Kimse sana senden iyi öğüt veremez.
Bölümler
Yazılar
Arşiv
Arama
Linkler
Site İçi Arama
Son Zamanlarda Ne Yapıyorum ?
İstatistikler - Araçlar - Reklam
İstatistikler
Sayaç
Mehmet Duran | mehmetduran.com | Copyright © 2009