web-dev-qa-db-fra.com

ModelState.IsValid renvoie toujours false

[HttpPost]
public ActionResult Create(Users user)
{
    if (ModelState.IsValid)
    {
        db.Users.Add(user);
        db.SaveChanges();
        return RedirectToAction("Index");  
    }

    return View(user);
}

ModelState.IsValid est toujours faux.
donc il ne fait que renvoyer la vue et aucun nouvel enregistrement n'est ajouté.

Modifier

Utilisateur:

public class User
{
    public int UserID { get; set; } 
    public string Name { get; set; } 
    [Display(Name = "Confirm Password")] [DataType(DataType.Password)] 
    public string ConfirmPassword { get; set; } 
    public string Designation { get; set; } 
    [Display(Name = "Date of Join")] [DataType(DataType.Date)] public DateTime DOJ { get; set; } 
    public string Email { get; set; } 
    [Display(Name = "Phone Number")] public System.Int64 PhoneNo { get; set; }
}
25
Mizbella

ModelState.IsValid sera faux si la validation du modèle a échoué.

  1. Vous avez DataAnnotation qui a échoué le modèle entrant.
  2. Vous avez ajouté des validations personnalisées.
  3. Assurez-vous qu'il n'y a pas d'entrées nulles dans le modèle pour les propriétés non nulles

Vérifier la ModelState.Errors pour quelle raison cela est-il dû? Vous pouvez utiliser ceci:

var errors = ModelState.Values.SelectMany(v => v.Errors);
84
gdoron