En iyi yanıtlayıcılar
Asp.net mvc listbox işlemleri hakkında

Soru
-
Merhaba;
Yapmak istediğim içini şu şekilde doldurduğum,
ViewBag.select = new MultiSelectList(DatabaseContext.Etikets.ToList(), "Id", "EtiketAdi");
Viewda şu şekilde çektiğim
@Html.ListBox("EtiketId", (MultiSelectList)ViewBag.select)
bir listem var ve multi select yapıyorum.
Veri tabanım ise şu şekilde Kategori ,Makale , Etiket.
Ve birde MakaleEtiket diye tablom var.Makale ve etiket tablom many to many bağlı olduğu için MakaleEtiket diye bir tablo oluşturdum ve bu tablonun içine makaleId ve EtiketId koydum.
Makale eklerken aynı zamanda MakaleEtiket tablosunada verilerin kaydedilmesi lazım.
Create işlemim ise şu şekilde
public ActionResult Create(Makale Model,MakaleEtiket eti, int? sirasi,int[] EtiketId, HttpPostedFileBase imageSlider, int? Page) { var mak = new Makale { KategoriId=Model.KategoriId, KisaMetin=Model.KisaMetin, MakaleBaslik=Model.MakaleBaslik, Tarih=Model.Tarih, UzunMetin=Model.UzunMetin, Resim= new WebImage(imageSlider.InputStream).Resize(195, 235).Crop(1, 1).GetBytes("jpeg") }; DatabaseContext.Entry(mak).State = EntityState.Added; DatabaseContext.SaveChanges(); for (int i = 0; i < EtiketId.Count(); i++) { var et = new MakaleEtiket { MakaleId = mak.Id, EtiketId = eti.EtiketId }; DatabaseContext.Entry(et).State = EntityState.Added; DatabaseContext.SaveChanges(); } ViewBag.dropDownList1 = new SelectList(DatabaseContext.Kategoris.ToList(), "Id", "KategoriAdi"); ViewBag.select = new MultiSelectList(DatabaseContext.Etikets.ToList(), "Id", "EtiketAdi"); var _categories = DatabaseContext.Makales.OrderBy(p => p.Tarih).ToPagedList(Page ?? 1, 10); return View("Index",_categories); }
Select işlemi kadar dönebiliyorum fakat MakaleEtiket tablosuna eklerken her seferinde aynı etiketid yi ekliyor.
Sizce nerede hata yapıyorum nasıl düzeltebilirim teşekkürler.
Yanıtlar
-
for (int i = 0; i < EtiketId.Count(); i++) { var et = new MakaleEtiket { MakaleId = mak.Id, EtiketId = EtiketId[i] };
Bi dene böyle- Yanıt Olarak İşaretleyen MehmetOkdemir 14 Haziran 2017 Çarşamba 15:23
Tüm Yanıtlar
-
-
for (int i = 0; i < EtiketId.Count(); i++) { var et = new MakaleEtiket { MakaleId = mak.Id, EtiketId = EtiketId[i] };
Bi dene böyle- Yanıt Olarak İşaretleyen MehmetOkdemir 14 Haziran 2017 Çarşamba 15:23
-