public async Task <IHttpActionResult> SaveUserContact() { var userContact = new UserContact(); var httpRequest = HttpContext.Current.Request; var requestedFiles = httpRequest.Files; NameValueCollection formValueCollection = httpRequest.Form; try { foreach (string keyVal in formValueCollection.AllKeys) { PropertyInfo objProperty = userContact.GetType().GetProperty(keyVal, BindingFlags.Public | BindingFlags.Instance); if (objProperty != null) { objProperty.SetValue(userContact, formValueCollection[keyVal], null); } } foreach (string file in requestedFiles) { var postedFile = httpRequest.Files[file]; var filePath = HttpContext.Current.Server.MapPath("~/Content/Uploaded/" + postedFile.FileName); postedFile.SaveAs(filePath); switch (file) { case "Avatar": userContact.Avatar = postedFile.FileName; break; case "Signature": userContact.Signature = postedFile.FileName; break; default: break; } } //Save Data to Database db.UserContacts.Add(userContact); await db.SaveChangesAsync(); } catch (DbUpdateException) { if (UserContactExists(userContact.UserID)) { return(Conflict()); } else { throw; } } return(Json("Registered!! Boom!!!")); }