public ActionResult Add(PackagesViewModel model) { if (model.ImageUpload == null || model.ImageUpload.ContentLength == 0) { ModelState.AddModelError("ErrorMessage", "The image field is required."); return View(model); } if (ModelState.IsValid) { // Process image string[] validImageTypes = new string[] { "image/gif", "image/jpeg", "image/pjpeg", "image/png" }; if (!validImageTypes.Contains(model.ImageUpload.ContentType)) { ModelState.AddModelError("ErrorMessage", "Please choose either a GIF, JPG or PNG image."); return View(model); } string uploadDir = @"~/Images/Packages"; string imagePath = Path.Combine(Server.MapPath(uploadDir), model.ImageUpload.FileName); string imageUrl = Path.Combine(uploadDir, model.ImageUpload.FileName); model.ImageUpload.SaveAs(imagePath); Package package = model.ToPackage(); package.ImageUrl = imageUrl; package.Status = PackageStatusEnum.Available; package.ApplicationUserId = WebSecurity.CurrentUserId; Result<Package> result = packageService.AddPackage(package); if (result.Status == ResultEnum.Success) { return RedirectToAction("Add", "Activities", new { packageId = result.Data.PackageId }); } else { ModelState.AddModelError("ErrorMessage", "Sorry, we were unable to create your package."); model.DisableSubmit = true; return View(model); } } ModelState.AddModelError("ErrorMessage", "Sorry, we were unable to create your package."); model.DisableSubmit = true; return View(model); }