public ActionResult Edit(PointViewModel model) { if (ModelState.IsValid) { // Convert to Point Model PointModel point = new PointModel { Id = model.Id, Name = model.Name, Address = model.Address, PostalCode = model.PostalCode, City = model.City, Coordenate = model.Coordenate, PhoneNumber = model.PhoneNumber, URL = model.URL, SourceURL = model.SourceURL, IsActive = model.IsActive }; // Get Topics if (model.SelectedTopicId.Length > 0) { point.Topics = new List <TopicModel>(); for (int i = 0; i < model.SelectedTopicId.Length; i++) { TopicModel temp = new TopicService().GetTopic(new Guid(model.SelectedTopicId[i].ToString())); point.Topics.Add(temp); } } try { if (point.IsValid) { service.UpdatePoint(point); return(RedirectToAction("Index")); } else { ModelState.AddModelError("", point.Error); } } catch (Exception e) { ModelState.AddModelError("", e.Message); } } ViewBag.Topics = new MultiSelectList(new TopicService().GetActiveTopics(), "Id", "Name", model.SelectedTopicId); ViewBag.City = new SelectList(new CityService().GetCities(), "Id", "Name"); return(View(model)); }