private ActionResult SaveConfig(object PartialModel) { if (!ModelState.IsValid) { List<string> errors = new List<string>(); foreach (var t in ModelState.Values) errors.AddRange(t.Errors.Where(x => !String.IsNullOrWhiteSpace(x.ErrorMessage)).Select(x => x.ErrorMessage)); throw new HttpException((int)HttpStatusCode.BadRequest, String.Join(Environment.NewLine, errors.ToArray())); } var config = new Models.Configuration(); foreach(var property in PartialModel.GetType().GetProperties(System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.GetProperty | System.Reflection.BindingFlags.SetProperty)) { var configProperty = config.GetType().GetProperty(property.Name); if(configProperty != null) configProperty.SetValue(config, property.GetValue(PartialModel, null), null); } config.Save(); return Json(new { success = true }); }