ModelState.IsValid始终返回false

时间:2012-11-14 06:16:28

标签: asp.net-mvc asp.net-mvc-3 modelstate

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

1 个答案:

答案 0 :(得分:82)

如果模型的验证失败,则

ModelState.IsValid将为false。

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

    检查ModelState.Errors导致此问题的原因。你可以用这个:

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