Asp.NET MVC’de getJSON İle Get İşlemi

Merhaba,

Asp.NET MVC’de Ajax ile post işleminin yanında ayriyetten get işlemide olmazsa olmaz bir talep seçeneğidir. Haliyle gelin şimdi bu içerikte jQuery kütüphanesi eşliğinde Asp.NET MVC mimarisinde nasıl Get işlemi gerçekleştiriliyor detaylıca inceleyelim.

Öncelikle jQuery kütüphanesinin en kötü 1.0 versiyonunu projenize entegre etmeniz kafidir.

Şimdi aşağıdaki prototipe göz atınız.

            $.ajax({
                url: 'GET Adres',
                dataType: 'json',
                data: { Parametre: 'Deger' },
                success: function (data) {
                    //İşlemler...
                }
            });

Gördüğünüz gibi post işleminden tek farkı type: ‘POST’ parametresinin olmamasıdır. Aslında bu şekilde bir kullanımda varsayılan olarak type: ‘GET’ ifadesi hakimdir. Tabi ki de siz isterseniz type: ‘GET’ parametresinide kullanabilirsiniz.

Elimizde aşağıdaki gibi bir Controller olsun.

    public class HomeController : Controller
    {
        // GET: Home
        public ActionResult Index()
        {
            return View();
        }

        [HttpGet]
        public JsonResult GetMethod(int? x)
        {
            return Json(x.ToString(), JsonRequestBehavior.AllowGet);
        }
    }

“Index.cshtml” üzerinden “GetMethod” isimli Action metoda bir GET işlemi gerçekleştirelim.

<input type="submit" value="Post Et" id="btnPost" />

<script type="text/javascript">
    $(document).ready(function () {
        $("#btnPost").click(function () {
            $.ajax({
                url: '@Url.Action("GetMethod","Home")',
                dataType: 'json',
                data: { x: 3 },
                success: function (data) {
                    alert(data + ' verisi gelmiştir.');
                }
            });
        });
    });
</script>

Bu işlem neticesinde butona tıklandığı zaman aşağıdaki sonucu elde etmekteyiz.
Asp.NET MVC'de getJSON İle Get İşlemi

Şuana kadar getJSON fonksiyonuna değinmeden olayın nasıl ajax componenti üzerinden gerçekleştirildiğini incelemiş olduk. Haliyle şimdi getJSON fonksiyonunun prototipini inceleyelim ve ardından aynı işlemleri gerçekleştirelim.

            $.getJSON('url', function (data) {
                //İşlemler...
            });

Gördüğünüz gibi bu fonksiyon sayesinde verilen url’e GET işlemi uygulanmakta ve geriye dönülen sonucu JSON formatında data parametresiyle elde etmekteyiz.

Ayriyetten done, fail ve always fonksiyonlarıda aşağıdaki niyetlerle kullanılabilmektedir.

            $.getJSON('url', function (data) {
                //İşlemler...
            }).done(function () {
                //getJSON talebi başarılıysa burası tetiklenecektir.
            }).fail(function (jqXHR, textStatus, errorThrown) {
                //getJSON talebi hatalıysa burası tetiklenecektir.
            }).always(function () {
                //getJSON talebi sonlandıysa burası tetiklenecektir.
            });

Son olarak parametre alan prototipimizde aşağıdaki gibidir…

            $.getJSON('url', { parametre: "değer" }, function (data) {
                //İşlemler...
            });

Ve şimdide yukarıdaki yaptığımız örnek GET işleminin aynısını getJSON fonksiyonu ile gerçekleştirelim.

<input type="submit" value="Post Et" id="btnPost" />

<script type="text/javascript">
    $(document).ready(function () {
        $("#btnPost").click(function () {
            $.getJSON('@Url.Action("GetMethod", "Home")', { x: 123 }, function (data) {
                alert(data + ' verisi gelmiştir.');
            });
        });
    });
</script>

Sonraki yazılarımda görüşmek dileğiyle…
İyi çalışmalar dilerim…

Bunlar da hoşunuza gidebilir...

3 Cevaplar

  1. borahan arslan dedi ki:

    Merhaba,
    Dönen datayı aynı sayfadaki modele nasıl doldururuz. Bu konuda bir makaleniz var mı ?

    • Gençay dedi ki:

      Merhaba,

      Belirttiğiniz konuda bir makalem yok. Lakin soruyuda tam anlayamadım doğrusu. Sayfadaki modelden kastınız MVC model ise ilgili işlem neticesinde gelen datayı MVC modele doldurmak direkt olarak pek mümkün değildir kanaatindeyim.

  2. borahan arslan dedi ki:

    Tamamdır hocam. Baktım bende bulamadım yabancı sitelerde bir iki kişi yazmış ama ingilizcem çok iyi olmadığı için bende pek anlamadım. Teşekkürler yinede

Bir cevap yazın

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

*

Copy Protected by Chetan's WP-Copyprotect.