none
Asp.net mvc listbox işlemleri hakkında RRS feed

  • 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.

    14 Haziran 2017 Çarşamba 13:52

Yanıtlar

Tüm Yanıtlar