Laravel Türkiye Discord Kanalı Forumda kod paylaşılırken dikkat edilmesi gerekenler!Birlikte proje geliştirmek ister misiniz?
  • YardımSQL
  • Asp.Net MVC'de Checkbox veri tabanından silme işlemi

Urun sayfam için veri tabanına 17 tane özellik ekledim. Sitede Checkbox ile seçim yapıp, özellikleri atıyorum ürüne veri tabanına kayıt ediyor ama seçimi kaldırıp güncellediğimde veri tabanından silinmiyor yardım.

Silme kodu rica ediyorum. Tablolarım şu şekilde;

OZELLIKLER('ID,'BASLIK')
URUNLERIMIZ('ID','BASLIK')
URUN_OZELLIKLERI('ID','URUN_ID','OZELLIK_ID')

Controller:

public ActionResult Kaydet2(URUNLERIMIZ b, List<int> ozellikler)
{
    var gunck = db.URUNLERIMIZ.Find(b.ID);
    gunck.BASLIK = b.BASLIK;
    db.SaveChanges();

    // Seçilen özellikleri URUN_OZELLIKLERI tablosuna ekleyelim
    if (ozellikler != null)
    {
        foreach (var ozellikID in ozellikler)
        {
            // Seçilen özelliği URUN_OZELLIKLERI tablosuna ekle
            db.URUN_OZELLIKLERI.Add(new URUN_OZELLIKLERI { URUN_ID = b.ID, OZELLIK_ID = ozellikID });
        }
        // Değişiklikleri veritabanına kaydet
        db.SaveChanges();

    }

    return RedirectToAction("Urunlerimiz", "Dashboard");
}

View Tarafı checkbox formu

<div class="form-items">
    <div class="form-title">Hizmetleri Seç</div>
    @if (ViewBag.UrunOzellikleri != null)
    {
        foreach (var ozellik in ViewBag.Ozellikler)
        {
            <div class="form-item">
                @{
                    // Eğer özellik seçiliyse, checked attribute'unu ekle
                    bool CheckboxIsaretliMi = ViewBag.UrunOzellikleri.Contains(ozellik.ID);
                }
                <input type="checkbox" name="ozellikler" id="ozellik_@ozellik.ID" class="form-check-input" value="@ozellik.ID" @(CheckboxIsaretliMi ? "checked" : "")>
                <label for="ozellik_@ozellik.ID" class="form-check-label">@ozellik.BASLIK</label>
            </div>
        }
    }
    else
    {
        <p>Ürün özellikleri yüklenemedi.</p>
    }
</div>

    Merhaba,

    Burası PHP Laravel topluluk forumu.
    Asp Net sorularınızı, o konuda uzmanlaşmış forumlara sormanız daha doğru olacaktır.

    Yine de bilgili arkadaşlar varsa yardımcı olabilirler belki.

    eurythmics Kodda özellikleri silen bir yer göremedim. Önce özellikleri kaldırmanız lazım, böylece yenisi ile eskisi yer değiştirmiş olacak.

      mgsmus Silme kodu yok evet çünkü benim yazdığım kod çalışmadı sildim. Dediğinizi de yaptım da olmadı.

        eurythmics

        eurythmics Dediğinizi de yaptım da olmadı.

        Ne yaptınız mesela? Biraz araştırdım, Entity Framework'de AddRange ve RemoveRange isimli yöntemler var. Önce b ürününe ait özellikleri bulup RemoveRange ile kaldıracaksınız, sonra yeni eklenecek olanlar varsa onlardan bir list oluşturup AddRange ile ekleyeceksiniz.