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>