9 Ocak 2016 Cumartesi

MVC Kayıt Ekleme-Düzenleme-Silme

Bu günkü yazımızda bir önceki listelediğimiz verilerimize yeni veriler eklemeyi, güncellemeyi ve silme işlemlerini yapacağız.
Visual studiomuzdan projemizi açıp kaldığımız yerden devam ediyoruz.
1.CalisanlarController içerisine yeniCalisan adinda bir method ekliyoruz
public ActionResult YeniKayit()
{
return View("EkleCalisan");
}
2.View->Calisan içerisine EkleCalisan adında yeni bir view ekliyoruz









3.Yeni kayıtlar için Index view içerisine bir link koyuyoruz.
   a href="@Url.Action("YeniKayit", "Calisan")" class="elements">Yeni Kayıt a
Ve index sayfamızdan oluşturdugumuz linke tıklıyoruz bu bizi yeni kayıt ekleyeceğimiz sayfaya yönlendiriyor.

Evet kullanığımız Form etiketlerin amacı ne olabilir?
Web uygulamaları masaüstü yazılımları gibi event programlama değidir. Burada server ile haberleşme işlemi devreye girer. Kullanıcılar istekte bulunurlar server ise bunlara cevap döner. Form etiketleri html de istek göndermenin bir yöntemidir. Bu form uzerindeki kaydet butonu da bizim için bir istek gonderir.

Form etiketlerin method özellikleri nelerdir?
İstek -get-post-put-delete olan dort tipten biri olabilir.
Genel olarak kullanımı
*get: birşeyler getirmek istediğimiz zaman kullanırız
*post: birşeyler gondermek kaydetmek için kullanırız
*put: birşeyler güncellemek düzeltmek için kullanırız
*delete: birşeyler silmek istediğimizde kullanırız.

Form etiketleri uzerinden giden istek ile browserdan url olarak giden istek arasındaki fark nedir?
Eğer ki istek bizim form taglerimiz içerisinde gidiyorsa onunla birlikte butun input degerleride işlem için birlikte gider buda her iki isteği birbirinden ayırt eder.(input type=text, type=radio, type=checkbox) ve dropdownlistin select select ogesi gonderilebilir.

“input type=submit” ve “input type=button” arasındaki farklar?
Submit buton bizim serverdan ozel olan isteklerimiz anlamına gelir. Normal buton ise bizim client tarafındaki ozel bazı olayları yonetebilmemiz için kullanılır. Normal buton sade kullanıldığı zaman serverdan herhangi bir istekte bulunamaz.

4.Server side/controller ile get/post işlemi
4.1.Şimdi çalışanController içerisine aşağıdaki gibi birtane action method yazıyoruz 
public string KaydetCalisan(Calisanlar c)
{
return c.Ad + "--" + c.Soyad + "--" + c.Maas;
}
4.2.daha sonra
http://localhost:25654/Calisan/index sayfamızdan verdigimiz link ile
http://localhost:25654/Calisan/YeniKayit sayfamıza gidiyoruz ve burda yeni kaydımızı olusturuyoruz
Not: formu olusturuken  
  yazdığımız action ismi ile yukarıda olusturdugumuz action ismi aynı olmali.
ve daha sonra kaydet butonuna basmalıyız.
ahmet--saglam--234
diye bir sayfa sonuç olarak dönmeli.
5. Reset ve Iptal butonları
5.1 Html içeriğini duzenliyoruz(ekle calisan).
script
function ResetForm() {
document.getElementById('TxtAd').value = "";
document.getElementById('TxtSoyad').value = "";
document.getElementById('TxtMaas').value = "";
}
script 

form action="/Calisan/KaydetCalisan" method="post"
Ad : input type="text" id="TxtAd" name="Ad" value=""  br 
Soyad : input type="text" id="TxtSoyad" name="Soyad" value=""  br 
Maas : input type="text" id="TxtMaas" name="Maas" value=""  br
input type="submit" name="BtnGonder" value="Çalışan Kaydet
input type="button" name="BtnReset" value="Reset" onclick="ResetForm();"
input type="submit" name="BtnGonder" value="İptal
form

Yukarıda fark ettiğiniz üzere butonlarımızı üçledik ve reset butonumuzun onclick eventine bir script yazdık boylece tıklandıgında bizim textboxlarımızın içerisi temizlenecek.
Aynı zamanda kaydet ve iptal butonlarının isimlerini BtnGonder olarak ayarladık ve bu kaydetCalisan methodumuza gittiginde oradaki kotnroller ile ya kayıt eklenecek yada ana sayfaya yonlendirme yapılacak.

5.2 KaydetCalisan Methodumuzu duzenliyoruz.
public ActionResult KaydetCalisan(Calisanlar c,string btnGonder)
{
switch (btnGonder)
{
case "Çalışan Kaydet":
return Content(c.Ad+ "--" + c.Soyad + "--" + c.Maas);
case "İptal":
return RedirectToAction("Index");
}
return new EmptyResult();
}
Ve şimdi F5 ile yaptığımız değişiklikleri inceleyebiliriz.

6. Veritabanına kayıt ve aynı zamanda listeyi yenileme
6.1 Dal klasörümüz içerisindeki CanliSatısDal sınıfına ikinci bir method ekliyoruz KaydetCalisan
public class CanliSatisBal
{
public List GetCalisanlar()
{
CanliSatisDal canliSatisDal = new CanliSatisDal();

return canliSatisDal.Calisanlar.ToList();
}
public Calisanlar KaydetCalisan(Calisanlar c)
{
CanliSatisDal canliSatisDal = new CanliSatisDal();
canliSatisDal.Calisanlar.Add(c);
canliSatisDal.SaveChanges();
return c;
}
}
6.2 Controller içerisindeki KaydetCalisan methodunu degistiriyoruz.
public ActionResult KaydetCalisan(Calisanlar c,string btnGonder)
{
switch (btnGonder)
{
case "Çalışan Kaydet":
CanliSatisBal canliSatisBal = new CanliSatisBal();
c.BaslamaTarihi = DateTime.Now;
canliSatisBal.KaydetCalisan(c);
//çalışanı kaydediyoruz ve index sayfasına yonlendiriyoruz
return RedirectToAction("Index");
case "İptal":
return RedirectToAction("Index");
}
return new EmptyResult();
}
F5 ile yaptığımız değişiklikleri inceleyebilirsiniz. Yeni kayıt işlemi veri tabanına yapılmıs ve aynı zamanda index sayfamızdaki listede gösterilmiştir.

Hiç yorum yok:

Yorum Gönder