I managed to populate DropDownList with value from a Database in ASP.NET MVC 5. My goal is to assing one of the dropDownList's value to a specific model, and send it back to the Database. So, if i leave the default value in the dropdownlist, the data in SQL server is null, which is Okay, but if I choose an option, I get an error : Exception thrown: 'System.InvalidOperationException' in System.Web.Mvc.dll ("There is no ViewData item of type 'IEnumerable' that has the key 'Status'."). I tried everything so far and i am opened for suggestions. Thank you !!! In Controller :
ViewBag.Status = new SelectList(db.Status, "Id", "Name");
in View
    @Html.DropDownList("Status","Select status...")
In Controller so far..
public ActionResult Index()
        {
            return View();
        }
         [HttpGet]
         public ActionResult Apply(ViewModelVM vm,int x=0)
         {
            myDb db = new myDb();
            ViewBag.SocialStatus = new SelectList(db.SocialStatuses, "Id", "StatusDescription");
            return View();
         }
        [HttpPost]
        public ActionResult Apply(ViewModelVM vm)
        {
            if (ModelState.IsValid)
            {
                using (myDb db = new myDb())
                {
                    var personalinfo = new PersonalInformation()
                    {
                        FirstName = vm.PersonalInformation.FirstName,
                        LastName = vm.PersonalInformation.LastName,
                        Birthdate = vm.PersonalInformation.Birthdate,
                        SocialStatus = vm.SocialStatus
                    };
                    ViewBag.SocialStatus = new SelectList(db.SocialStatuses, "Id", "StatusDescription");
                    db.PersonalInformations.Add(personalinfo);
                    db.SaveChanges();
                }
                return View("Success");
                }
            return View();
        }
The model:
public partial class Status
    {
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
        public SocialStatus()
        {
            PersonalInformations = new HashSet<PersonalInformation>();
        }
        public int Id { get; set; }
        [StringLength(20)]
        public string StatusDescription { get; set; }
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
        public virtual ICollection<PersonalInformation> PersonalInformations { get; set; }
    }
}
The ViewModel:
 public class ViewModelVM
    {
        ...
        public Status SocialStatus { set; get; }
        ...
    }
 
    