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.
Ş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…
Merhaba,
Dönen datayı aynı sayfadaki modele nasıl doldururuz. Bu konuda bir makaleniz var mı ?
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.
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
Teşekkürler