Why ModelState Isvalid false when working on images

26 Views Asked by At
public ActionResult Signup(UserTable u)
 {
     string fileName = Path.GetFileNameWithoutExtension(u.ImageFile.FileName);
     string extension = Path.GetExtension(u.ImageFile.FileName);
     fileName = fileName + extension;
     u.ImageUrlPath = "/Images/" + fileName;
     fileName = Path.Combine(Server.MapPath("/Images/"), fileName);
     u.ImageFile.SaveAs(fileName);

     if (ModelState.IsValid)
     {
        PasswordEncrpt EncrptedData = new PasswordEncrpt();

         u.EmailVerification = false;
         u.ActiveCode = Guid.NewGuid();
         //u.EncryptedPassword = "fff";
         u.EncryptedPassword = EncrptedData.Encode(u.SimplePassword);
         //u.LastLogin = DateTime.Now;
         u.Active = true;
         u.RegisterDate = DateTime.Now;

         Db.UserTables.Add(u);
         int a = Db.SaveChanges();
         if (a > 0)
         {
             SendMailToUser(u.Email, u.ActiveCode.ToString());

             return Json(new { success = true });
         }
     }
     else
     {
         //return Json(false);
         //return new HttpStatusCodeResult(HttpStatusCode.InternalServerError, "An error occurred");

         //var errors = ModelState.Values.SelectMany(v => v.Errors).Select(e => e.ErrorMessage).ToList();
         //return Json(new { success = false, errors });

         var errors = ModelState.ToDictionary(model => model.Key , model => model.Value.Errors.Select(e => e.ErrorMessage).ToList());

         return Json(new { success = false, errors });
     }
     return Json(false);
 }

please answer this question in asp.net mvc ef working with images using store path in datebase but image get by

[Display(Name = "ImageUrlPath", ResourceType = typeof(Language))] [Required(ErrorMessageResourceType = typeof(Language), ErrorMessageResourceName = "ImageIsRequied")]

public string ImageUrlPath {  get; set; }

[NotMapped]

public HttpPostedFileBase ImageFile { get; set; }
1

There are 1 best solutions below

0
Ahsan Shafique On

var errors = ModelState.Values.SelectMany(v => v.Errors).Select(e => e.ErrorMessage).ToList();

use this to check which fields are requied and make sure your model class is also requied attributes