public async Task <IActionResult> Create([Bind("IdTrail, Name, Colour, Open, Feedback, Length, Difficulty, Description, RegionLocation")] Trail trail, string[] selectedRegions) { if (ModelState.IsValid) { await _trailRepository.AddTrailAsync(trail); trail.RegionLocation = new List <RegionLocation>(); foreach (var region in selectedRegions) { trail.RegionLocation.Add(new RegionLocation { IdRegion = _regionRepository.GetAllRegionToUser().Where(r => r.Name == region).FirstOrDefault().IdRegion, IdTrail = trail.IdTrail }); } _trailRepository.EditTrail(trail); return(RedirectToAction(nameof(Index))); } List <RegionSelection> regions = new List <RegionSelection>(); foreach (var region in _regionRepository.GetAllRegionToUser()) { regions.Add(new RegionSelection { Name = region.Name, Selected = selectedRegions.Contains(region.Name) }); } ViewBag.Regions = regions; return(View(trail)); }