ModelState.IsValid está sempre retornando false [duplicado]

Esta pergunta já tem uma resposta aqui:

ModelState.IsValid == false, por quê? 8 respostas
[HttpPost]
public ActionResult Create(Users user)
{
    if (ModelState.IsValid)
    {
        db.Users.Add(user);
        db.SaveChanges();
        return RedirectToAction("Index");  
    }

    return View(user);
}

ModelState.IsValid é sempre falso.
basta retornar a visualização e um novo registro não está sendo adicionado ..

Edita

Do utilizador

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

questionAnswers(1)

yourAnswerToTheQuestion