MVC Ders Notları - 3 Yeni veri Ekleme ve Dropdownlist veri getirme
YENİ VERİ EKLEME İŞLEMLERİ
Controller kısmına
[HttpGet]
public ActionResult YeniVeri()
public ActionResult YeniVeri()
{
return View();
return View();
}
[HttpPost]
public ActionResult YeniVeri (TabloAdı p1)
[HttpPost]
public ActionResult YeniVeri (TabloAdı p1)
{
}
Bu kodlar yazılır. Bu kodlarda Get kısmı sayfada butona
tıklanmadığında olacak işlemler da çalışacak
komutlardır. Direk sayfayı olduğu gibi göstermesi için kod yazdık. Altındaki
ise post olduğunda yani butondan yada formdan veri geldiğinde yapılacak
işlemdir. Ekleme kodlarını yazacağız.
Ø
Parantez içine
çalışacağımız tablo adını yazıyoruz. Tabi listelemede ki gibi kütüphaneleri
eklemiş olmalıyız.
Ø
Çalışacağımız tablo adı ve
bir değişken. Örn: TblUrunler p1 gibi
Ø
Bu alanın içine ekleme
komutlarını yazıyoruz. Onlar da şu şekilde olacak.
db.TBLMUSTERILER.Add(p1); Bu kod p1’den gelen değerleri ekleme işlemini yapar. Kaç tane gelirse gelsin tutacak ve ekleyecektir.
db.SaveChanges(); Bu kod işlemi kaydeder.
return RedirectToAction("Index"); Bu kod ındex sayfasına yönlendirir. Yani listeleme sayfamıza
db.TBLMUSTERILER.Add(p1); Bu kod p1’den gelen değerleri ekleme işlemini yapar. Kaç tane gelirse gelsin tutacak ve ekleyecektir.
db.SaveChanges(); Bu kod işlemi kaydeder.
return RedirectToAction("Index"); Bu kod ındex sayfasına yönlendirir. Yani listeleme sayfamıza
INDEX SAYFAMIZ İÇİN KODLARI:
Ø
Controllera sağ tıklayıp
(YeniVeri) sayfayı layout kullanarak oluşturruz. Ve ekleme için sayfamızda @model MvcStok.Models.Entity.TBLMUSTERILER kütüphanemizi
ekleriz.
Ø
<form class="form-group"
method="post">
Bu form oluşturulur içerisine kodlar yazılır. Bir div oluştururuz her satır için
<div>
<label> Müşteri Adı</label> Bu labelı elimizl bu şekilde yazabiliriz.
@Html.TextBoxFor(m => m.MUSTERIAD, new { @class = "form-control" })
Bu kod bir textbox oluşturur ve içinde ki veri Musteriad veritabanındaki kısmıdır. Buradan giden veriler controllerda p1 yardımıyla alınır. Her kayıt için bir div oluşturup bu sistemle hazırlarsak güzel görünüm oluşur.
</div>
Bu form oluşturulur içerisine kodlar yazılır. Bir div oluştururuz her satır için
<div>
<label> Müşteri Adı</label> Bu labelı elimizl bu şekilde yazabiliriz.
@Html.TextBoxFor(m => m.MUSTERIAD, new { @class = "form-control" })
Bu kod bir textbox oluşturur ve içinde ki veri Musteriad veritabanındaki kısmıdır. Buradan giden veriler controllerda p1 yardımıyla alınır. Her kayıt için bir div oluşturup bu sistemle hazırlarsak güzel görünüm oluşur.
</div>
Ø
En son bir buton oluşturulur ve kayıt
işlemi yapılır.
<div style="margin-top:15px">
<button type="submit" class="btn btn-info" id="btn1">Müşteri Ekle</button>
</div>
</form>
<div style="margin-top:15px">
<button type="submit" class="btn btn-info" id="btn1">Müşteri Ekle</button>
</div>
</form>
Ø
Kaydetme işlemi bu kadardır.
DROPDOVNLİST EKLEME VE VERİTABANINDAN VERİLERİ GETİRME:
Ø
Controller kısmında Index
alanında yani sayfanın ilk görüneceği alanın içine yazılacak kodlar şu
şekidedir.
List<SelectListItem> degerler = (from i in db.TBLKATEGORILER.ToList()
select new SelectListItem
{
Text = i.KATEGORIAD,
Value = i.KATEGORIID.ToString()
}).ToList();
ViewBag.dgr = degerler;
return View();
List<SelectListItem> degerler = (from i in db.TBLKATEGORILER.ToList()
select new SelectListItem
{
Text = i.KATEGORIAD,
Value = i.KATEGORIID.ToString()
}).ToList();
ViewBag.dgr = degerler;
return View();
Ø
Index kısmında yazılacak
kodlar normal ekleme formlarındaki gibi
herşey olacaktır. Tek fark dropdown list olacak alan;
@Html.DropDownListFor(m=> m.TBLKATEGORILER.KATEGORIID, (List<SelectListItem>) ViewBag.dgr, new { @class = "form-control" })
Şeklinde kod olacaktır. Ve ekleme kısmında ki kod normal eklemeden biraz farklı şu şekilde olacaktır.
var ktg = db.TBLKATEGORILER.Where(m => m.KATEGORIID == p1.TBLKATEGORILER.KATEGORIID).FirstOrDefault();
p1.TBLKATEGORILER = ktg;
Burdan sonrası standart eklemeyle aynıdır.
db.TBLURUNLER.Add(p1);
db.SaveChanges();
return RedirectToAction("Index");
@Html.DropDownListFor(m=> m.TBLKATEGORILER.KATEGORIID, (List<SelectListItem>) ViewBag.dgr, new { @class = "form-control" })
Şeklinde kod olacaktır. Ve ekleme kısmında ki kod normal eklemeden biraz farklı şu şekilde olacaktır.
var ktg = db.TBLKATEGORILER.Where(m => m.KATEGORIID == p1.TBLKATEGORILER.KATEGORIID).FirstOrDefault();
p1.TBLKATEGORILER = ktg;
Burdan sonrası standart eklemeyle aynıdır.
db.TBLURUNLER.Add(p1);
db.SaveChanges();
return RedirectToAction("Index");
Ø
Fark olmasındaki sebep biz
kategori adını listeliyoruz ama almamız ve kaydetmemiz gereken değer
kategorinin id bilgisidir. Bunun için küçük where sorgulu veri ekliyoruz ve
inner joini kendisi kuruyor.
Yorumlar
Yorum Gönder