private void PrepareSelectList(int?stateId = null, int?cityId = null) { var states = StateFactory.GetAllStates(); List <SelectListItem> stateList = new List <SelectListItem>(); foreach (var item in states) { if (stateId.HasValue) { if (stateId == item.Id) { stateList.Add(new SelectListItem { Value = item.Id.ToString(), Text = item.Title, Selected = true }); } else { stateList.Add(new SelectListItem { Value = item.Id.ToString(), Text = item.Title }); } } else { stateList.Add(new SelectListItem { Value = item.Id.ToString(), Text = item.Title }); } } ViewData["States"] = stateList; if (cityId.HasValue) { var cities = StateFactory.GetCitiesByStateId(stateId.Value); List <SelectListItem> cityList = new List <SelectListItem>(); foreach (var item in cities) { if (cityId.HasValue) { if (cityId == item.Id) { stateList.Add(new SelectListItem { Value = item.Id.ToString(), Text = item.Title, Selected = true }); } else { stateList.Add(new SelectListItem { Value = item.Id.ToString(), Text = item.Title }); } } else { stateList.Add(new SelectListItem { Value = item.Id.ToString(), Text = item.Title }); } } ViewData["Cities"] = cityList; } }