public ActionResult NewContact(int id, AccountFilterModel filter, FormCollection collection) { var account = AccountServices.GetAccount(id); var contact = new ContactModel() { AccountId = id }; try { // Need to specify properties because the id (account) overwrites Contact.Id UpdateModel(contact, new string[] { "ContactTypeId", "ContactDetail", "FirstName", "LastName" }); AccountServices.AddContact(account, contact); return(RedirectToAction("EditAccount", filter.GenerateAccountDetailRoute(id))); } catch (Exception ex) { // Invalid - redisplay with errors Logger.Error(ex.ToString()); ModelState.AddModelError(String.Empty, Constants.ServerError); var model = new ContactDetailModel() { Action = "NewContact", Contact = contact, Filter = filter, }; ViewBag.ContactTypes = AccountServices.GetContactTypes(contact.ContactTypeId); return(View("ContactDetail", model)); } }