ModelState.IsValid总是返回false [复制](ModelState.IsVali

2019-07-03 19:47发布

这个问题已经在这里有一个答案:

  • ModelState.IsValid ==假的,为什么呢? 8个回答
[HttpPost]
public ActionResult Create(Users user)
{
    if (ModelState.IsValid)
    {
        db.Users.Add(user);
        db.SaveChanges();
        return RedirectToAction("Index");  
    }

    return View(user);
}

ModelState.IsValid永远是假的。
所以它只是返回查看,并没有得到增加了新的纪录..

编辑

用户:

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; }
}

Answer 1:

ModelState.IsValid将是错误的,如果该模型的验证失败。

  1. 你有DataAnnotation它未能进入的模式。
  2. 您添加的自定义验证。
  3. 请确保在模型中的非空的属性,没有空项

检查ModelState.Errors什么是造成这种情况的原因。 您可以使用此:

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


文章来源: ModelState.IsValid is always returning false [duplicate]