İç İçe Bağımlı DropdownListFor (Cascading)



        Uygulamalarımız da sıkça kullandığımız cascading(iç içe bağımlı) dropdownlisti kullanacağız. Örneğimiz, Asp.Net MVC ile veri tabanından gelen verilerle birinci DropdownListFor'a araba markalarını doldurulacak, birinci DropdownListFor da seçilen markaya göre 2. DropdownListFor içine araba modelleri listelencek.


         Bunun için ilk önce,  Arabalar ve ArabaModeller adında iki tane model oluşturalım. 

    public class Arabalar
    {
        [Key]
        public int ArabaID { get; set; }

        public string ArabaMarka { get; set; }

        public virtual ICollection<ArabaModeller> Model { get; set; }
    }


    public class ArabaModeller
    {

        public int ID { get; set; }
        public string ModelAdi { get; set; }
        public int ArabaID { get; set; }
        public Arabalar Araba { get; set; }
    }


 public class CascadingContext:DbContext
    {
       public DbSet<Arabalar> Arabalar { get; set; }
       public DbSet<ArabaModeller> ArabaModeller { get; set; }
    }


Controllerdaki Index ActionResulta DropdownListFor içini dodurmak için ViewBag yazalım.


public class HomeController : Controller
{
     CascadingContext _context = new CascadingContext();

     [HttpGet]
     public ActionResult Index()
     {
         ViewBag.ArabaModelListe = _context.ArabaModeller.Where(x => x.ID == null).ToList();
         ViewBag.ArabaListe = _context.Arabalar.ToList();
         return View();
     }
}


Index View dosyasını da şu şekilde düzenleyelim.




düzenlediğimiz Index View dosyasının alt kısmına aşağıdaki script kodumuzu ekleyeyim. Index  View dosyasının son hali.



Ekran çıktısı







Yorumlar

Bu blogdaki popüler yayınlar

Asp.Net Core View Components Kullanımı

Partial - RenderPartial - Html.Action - Html.RenderAction Kullanımı