Asp.net-Mvc

ModelState.IsValid 總是返回 false [重複]

  • November 14, 2012
[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; }
}

ModelState.IsValid如果模型的驗證失敗,則為 false。

  1. 您有DataAnnotation使傳入模型失敗。
  2. 您添加了自定義驗證。
  3. 確保模型中沒有非空屬性的空條目

檢查ModelState.Errors造成這種情況的原因是什麼。你可以使用這個:

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

引用自:https://stackoverflow.com/questions/13373935