ModelState.IsValid始终返回false

Miz*_*lla 26 asp.net-mvc modelstate asp.net-mvc-3

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

    return View(user);
}
Run Code Online (Sandbox Code Playgroud)

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; }
}
Run Code Online (Sandbox Code Playgroud)

gdo*_*ica 85

ModelState.IsValid 如果模型验证失败,则为false.

  1. 您有DataAnnotation,它使传入的模型失败.
  2. 您添加了自定义验证.
  3. 确保模型中没有非null属性的空条目

检查ModelState.Errors造成这种情况的原因是什么.你可以用这个:

var errors = ModelState.Values.SelectMany(v => v.Errors);
Run Code Online (Sandbox Code Playgroud)

  • var错误的+1 = ModelState.Values.SelectMany(v => v.Errors); (9认同)
  • 将`ModelState.Values.SelectMany(v => v.Errors).ElementAt(0);`粘贴到`立即窗口`. (3认同)