Edit GET and POST with ViewModel
I am new to MVC and trying to figure out why I am not getting the selected items from a list

//My Model

    public class Disaster
    {
        public int DisasterID { get; set; }
        public int DisasterTypeID { get; set; }
        public string DisasterName { get; set; }
        public DateTime StartDate{ get; set; }
        public DateTime EndDate{ get; set; } 
        public int Casualties { get; set; }
        public int PeopleDisplaced { get; set; }
        public double PropertyDamage { get; set; }
        public virtual DisasterType DisasterType { get; set; }
        public List<City> Cities = new List<City>();
    }



//ViewModel

    public class DisasterFormViewModel
    {
        DisasterContext db = new DisasterContext();
        
        public DisasterFormViewModel(Disaster disaster)
        {
            Disaster = disaster;
            disType = disaster.DisasterType;
            selectedDisasterType = Disaster.DisasterTypeID;
            DisasterTypes = GetDisasterTypes(selectedDisasterType);
        }

        private IList<City> _selectedCities;
        private IList<City> _allCities;

        public IList<City> SelectedCities
        {
            get { return _selectedCities; }
        }

        public IList<City> AllCities
        {
            get { return db.Cities.ToList(); }
        } 

        public DisasterType disType { get; private set; }
        public Disaster Disaster { get; private set; }
        private MultiSelectList _cityList;
        public SelectList DisasterTypes { get; private set; }
        int selectedDisasterType;


        public MultiSelectList CityList
        {
            get { return _cityList; }
            private set { _cityList = value; }
        }
        public int[] DisasterCities { get; set; }


        public MultiSelectList GetSelectedCities(int[] selectedValues)
        {
            return new MultiSelectList(SelectedCities, "CityID", "CityName", selectedValues);
        }

        public SelectList GetDisasterTypes(int selectedID)
        {
            List<DisasterType> TypesOfDisasters = db.DisasterTypes.ToList();
            return new SelectList(TypesOfDisasters, "DisasterTypeID", "DisasterTypeName", selectedID);
        }
    }



I hope someone can point me in the right direction 
Edit GET and POST with ViewModel
===

I am new to MVC and trying to figure out why I am not getting the selected items from a list

//My Model

    public class Disaster
    {
        public int DisasterID { get; set; }
        public int DisasterTypeID { get; set; }
        public string DisasterName { get; set; }
        public DateTime StartDate{ get; set; }
        public DateTime EndDate{ get; set; } 
        public int Casualties { get; set; }
        public int PeopleDisplaced { get; set; }
        public double PropertyDamage { get; set; }
        public virtual DisasterType DisasterType { get; set; }
        public List<City> Cities = new List<City>();
    }



//ViewModel

    public class DisasterFormViewModel
    {
        DisasterContext db = new DisasterContext();
        
        public DisasterFormViewModel(Disaster disaster)
        {
            Disaster = disaster;
            disType = disaster.DisasterType;
            selectedDisasterType = Disaster.DisasterTypeID;
            DisasterTypes = GetDisasterTypes(selectedDisasterType);
        }

        private IList<City> _selectedCities;
        private IList<City> _allCities;

        public IList<City> SelectedCities
        {
            get { return _selectedCities; }
        }

        public IList<City> AllCities
        {
            get { return db.Cities.ToList(); }
        } 

        public DisasterType disType { get; private set; }
        public Disaster Disaster { get; private set; }
        private MultiSelectList _cityList;
        public SelectList DisasterTypes { get; private set; }
        int selectedDisasterType;


        public MultiSelectList CityList
        {
            get { return _cityList; }
            private set { _cityList = value; }
        }
        public int[] DisasterCities { get; set; }


        public MultiSelectList GetSelectedCities(int[] selectedValues)
        {
            return new MultiSelectList(SelectedCities, "CityID", "CityName", selectedValues);
        }

        public SelectList GetDisasterTypes(int selectedID)
        {
            List<DisasterType> TypesOfDisasters = db.DisasterTypes.ToList();
            return new SelectList(TypesOfDisasters, "DisasterTypeID", "DisasterTypeName", selectedID);
        }
    }



I hope someone can point me in the right direction 