28 Aralık 2015 Pazartesi

MVC Jquery Post İşlemi ile Sayfalar Arası Veri Aktarımı

Web projelerinde jquery veya javascriptin çok faydalı olduğunu sanırım kimse inkar edemez. Peki sayfalar arası veri taşımak için bunu kullandığımızda bu teknolojiler ne kadar işimize yarıyor ya da MVC'de neler yapabiliriz ona bakalım.

İlk olarak DenemeClass adında bir sınıf oluşturalım. Propertylerimiz ID(int), Name(string) ve Surname(string) olsun.

Şimdi bu sınıfımızı model alan bir sayfa oluşturalım.



Şimdi Viewimize gidelim.

Burada sayfamıza ActionResult'ımızdan gelen verileri bind ettik. Şimdi bu sayfadan butona basıldığında ReturnAction adında bir ActionResulta gitmek istediğimizi düşünelim. Bunun için sayfaya bir buton ekledik. Yönlendirme işlemi için denek adında bir function oluşturduk.

Functionımızda neler yaptığımıza bakarsak ilk olarak alanlardaki değerlerimizi alıyoruz. Burada alert olarak Modeldeki değerleri verdim. Bunun nedeni gelen değerlerin değişmediğini görmeniz içindi. Yani ben textboxıma gelen Name alanındaki "Burak" değerini "Burak2" olarak değiştirsem de functiona bu değer modelden set edildiği için "Burak" olarak gelecektir. Bu yüzden Jquery val metoduyla değeri tekrar almak zorundayız.

Şimdi gelelim jquery post işlemimize. Birinci işlem bizim istediğimiz gerçek işlem. Yani id,name ve surname parametrelerini doldurarak codebehind daki metodumuza gideceğiz. Metodumuz şu şekilde.







Burada dikkatli olmanız gereken nokta ise jquery post metoduyla gönderdiğimiz parametre isimleri ile codebehind tarafındaki metodumuzun parametre isimleri aynı olmalı. Örnek olarak jquery post işleminde id,name ve surname parametreleri gönderdik ve burada da aynı isimlerle parametreleri aldık.

İlk olarak içinde @Modellerin olduğu metodu koddan kaldıralım ve çalıştıralım.













Gördüğünüz gibi değiştirdiğimiz veriler geldi. 

Peki senaryomuz modeldeki verilerin bu metoda gönderilmesi olsaydı ne yapmalıydık? İkinci jquery post metodumuz da tam bunun için yazılmıştı.












Dikkat ederseniz ben name alanını "Burak34" olarak doldurmuştum ancak gelen değer "Burak". Bunun nedeni @Model.Name alanı ile sayfamıza "Burak" değeri geldi ve sayfa post olmadığı için bu değer Modele bind olmadı.

Burada dikkat etmenizi önerdiğim bir nokta da Model ile jquery post yapacaksanız string parametrelerde başına ve sonuna " ' " (tek tırnak) koymanız. Yani name:'@Model.Name' olarak göndermenizdir.

Bir sonraki yazımda bu işlemlerle sayfa post yapmadan sayfada listeleme yapmayı göstereceğim. O zamana kadar şimdilik hoşçakalın.

Hiç yorum yok:

Yorum Gönder