MVC de iki model göndermeyi örneklendirecek olursak, “Duyurular” ve “Basvurular” adında iki tablomuz var. Bu tabloların ikisini de tek sayfada listelemek için;
- İki tabloyu birleştireceğimiz bir sınıf oluşturacağız.
- Oluşturduğumuz bu sınıfı Model olarak göndereceğiz.
Model
1 2 3 4 |
public class MultipleModels { public Tuple<List<Duyurular>, List<Basvurular>> Tub {get; set;} } |
MultipleModels adında oluşturduğumuz sınıfa özellik olarak Tuple ekliyoruz ve iki tabloyu içinde çağırıyoruz.
Controller
1 2 3 4 5 6 7 8 9 10 11 |
public ActionResult Admin() { MultipleModels models = new MultipleModels(); List<Duyurular> duyurular = db.Duyurular.ToList(); List<Basvurular> basvurular = db.Basvurular.ToList(); models.Tub = new Tuple<List<Duyurular>, List<Basvurular>>(duyurular, basvurular); return View(models); } |
Controller’da veritabanından liste şeklinde çektiğimiz Başvurular ve Duyurular tablolarını MultipleModels’den türettiğimiz nesneye yükledik. Ana model olarak onu View’e gönderdik.
View
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
@model MultipleModels <h1>Başvurular</h1> <table border="1"> <tr> <th width="100px;">İsim Soyisim</th> <th width="100px;">Eposta</th> <th width="100px;">Öğrenci No</th> <th width="100px;">Bölüm</th> <th width="100px;">Gano</th> <th width="100px;">Başvuru Tarihi</th> </tr> @foreach (Basvurular item in Model.Tub.Item2) { <tr> <td>@item.Adi</td> <td>@item.Email</td> <td>@item.OrenciNo</td> <td>@item.Bolum</td> <td>@item.Gano</td> <td>@item.DogumT</td> </tr> } </table> <br /> <hr /> <br /> <h1>Duyurular</h1> <table border="1"> <tr> <th>Duyuru Başlığı</th> <th>Duyuru İçeriği</th> <th>Duyuru Tarihi</th> <th></th> </tr> @foreach(Duyurular item in Model.Tub.Item1) { <tr> <td width="200px;">@item.Baslik</td> <td width="400px;">@item.Icerik</td> <td width="100px;">@item.Tarih</td> <td><a href="~/Admin/Admin/@item.ID"><input type="button" value="Sil" onclick="Sil(@item.ID)" /></a></td> </tr> } </table> |
Burada farklı olarak kullanılan tek nokta, modelde foreach ile dönerken Model.Tub.Item1 yada Item2 diye çağırmamız.
Temiz anlatım olmuş. Bir çok yerde var ama anlayana kadar adamı ağlatıyorlar direk al yapıştır düzenle
Size ne kadar teşekkür etsem azdır. Elinize sağlık. Çok güzel bir anlatım olmuş.
Sade, anlaşılır, %100 çözüm odaklı daha ne olsun ki elinize sağlık hocam 🙂
Çok güzel olmuş.
Peski örnek olarak iki tabloyu ayrı ayrı değilde tek tablo içerisinde gösteremezmiyiz. yani tabloları birleştirip item1 ve item2 olarak karışık gösterim yapmak
örnek
@item1.Adi
@item2.Baslik
@item1.EMail
gibi
Çok sağlıklı olur mu bilmiyorum ama item adedi büyük olan ile for döngüsü oluşyurup Model.Tub.Item2[i].Adi ve Model.Tub.Item1[i].Baslik şeklinde kullanabilirsin.