“ There is no ViewData item of type 'IEnumerable' that has the key ” hatası

betty (1) 7 yıl önce sordu

Arkadaşlar merhaba, DropDown list ile tanımladığım sınavları getirmek istiyorum. Bunun sonucunda 

System.InvalidOperationException: There is no ViewData item of type 'IEnumerable<SelectListItem>' that has the key 'gruplar.SelectedSinav'.

hatasını alıyorum. Kodları Breakpointle incelediğimde Controller'da GET kısmına hiç girmediğini gördüm. Post kısmında tanımlı olan liste dolu bir şekilde geliyor fakat get kısmına hiç girmiyor bile. Bunun sebebi ne olabilir. 

 

View 

@Html.DropDownListFor(d => d.gruplar.SelectedSinav, (IEnumerable<SelectListItem>)ViewBag.SinavList, "Sinav Seçiniz...", new { @class = "required" })

Controller

public ActionResult CreateGruplar()
{
    var sinav = SinavManager.GetSinav();
    var list = new SelectList(sinav, "SinavId", "SinavAdi");
    ViewBag.SinavList = list;
    return View();
}

[HttpPost]
public ActionResult CreateGruplar(Gruplar gruplar,FormCollection collection) 
{
    TempData["EventResult"] = GruplarManager.AddGruplar(gruplar,collection);
    if (((SG_BLL.Tools.Result)TempData["EventResult"]).Status.Equals("error"))
    {
        var sinav = SinavManager.GetSinav();
        var list = new SelectList(sinav, "SinavId", "SinavAdi");
        ViewBag.SinavList = list;
        return View();
    }
    return RedirectToAction("Create", "Sinav");
}

Manager (List Create)

public static List<Sinav> GetSinav()
{
    using (SGContext db = new SGContext())
    {
        try
        {
            var repo = new Repository<Sinav>(db);
            var sinavList = repo.Listele().Where(d => d.IsDeleted == false);
            return sinavList.ToList();
        }
        catch (Exception)
        {
            return null;
        }
    }
}

 

Toplam 0 cevap