Forum

MVC'de View'e değiş...
 
Bildirimler
Hepsini Temizle

MVC'de View'e değişken sayıda model göndermek

4 Yazılar
2 Üyeler
0 Likes
7,208 Görüntüleme
(@mehmetpeker)
Gönderiler: 12
Eminent Member
Konu başlatıcı
 

Merhabalar;

ASP.NET MVC 5 üzerinde;
Veritabanımda bulunan tüm kategoriler için en fazla 4 ürünü anasayfamda listelemek istiyorum.

Son denemem aşağıda, bu şekilde dynamic listesine ürünleri alıyorum ancak View'e nasıl göndereceğimi bulamadım ViewBag içine koyduğumda hata fırlatıyor.

List<dynamic> dynamiclist = new List<dynamic>();
int kategorisayisi = context.Kategoris.Where(x => x.Aktif == true).Count();
var k = context.Kategoris.Where(x => x.Aktif == true).ToList();

for (int i = 0; i < kategorisayisi; i++)
     {
          foreach (var item in k)
               {
                    dynamiclist.Add(context.Uruns.Where(x => x.Aktif == true).Where(x => x.KategoriID == item.Id).Take(4));
                    ViewData[i.ToString()] = context.Uruns.Where(x => x.Aktif == true).Where(x => x.KategoriID == item.Id).Take(4);
               }
     }
return View(dynamiclist);

Yardımlarınız için teşekkürler.

 
Gönderildi : 12/01/2017 20:19

(@volkanalkilic)
Gönderiler: 137
Estimable Member
 

Hatayı paylaşırsanız daha kolay yardım alırsınız.

 
Gönderildi : 12/01/2017 21:58

(@mehmetpeker)
Gönderiler: 12
Eminent Member
Konu başlatıcı
 

Hatayı paylaşırsanız daha kolay yardım alırsınız.

Bu kodlar için aldığım hata:

The model item passed into the dictionary is of type 'System.Collections.Generic.List`1[System.Object]', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable`1[E_Commerce.Urun]'.

 
Gönderildi : 13/01/2017 00:53

(@volkanalkilic)
Gönderiler: 137
Estimable Member
 

Hata yanlış veri türü gönderidiğinizi söylüyor. List<dynamic> dynamiclist = new List<dynamic>(); yerine List<Urun> dynamiclist = new List<Urun>(); olarak deneyin. Ayrıca context.Uruns.Where(x => x.Aktif == true).Where(x => x.KategoriID == item.Id).Take(4) yerine context.Uruns.Where(x => x.Aktif == true && x.KategoriID == item.Id).Take(4) daha kolay olacaktır.

 
Gönderildi : 13/01/2017 02:31

Paylaş: