ModelState.IsValid 总是返回错误的编辑表单

ModelState.IsValid Is Always Returning False Edit Form

ModelState.IsValid 在我的编辑表单中总是返回 false。它甚至没有命中 try catch。我做错了什么?

[AcceptVerbs("POST", "PUT")]
       public ActionResult Edit(ItemModel model)
       {   
               int customerID = model.customerID;

               using (BusinessLogicLayer BLL = new BusinessLogicLayer())
               {

               if (ModelState.IsValid)
               {

                   try
                   {   
                       BLL.InsertData(model.customerID);
                       BLL.SaveChanges();
                   }
                   catch (Exception e)
                   {
                      return View();
                   }
               }
           }

           return View();
       } 

代码的内容。型号无效。关于您通过端点传递的模型,这可能是任何事情。也许 ItemModel 在其属性之一上有一个 [Required] 属性,而您正试图在该 属性.

上传递 NULL 值

此外,根据 Stephen Muecke 的评论: 您可以通过访问 ModelState 的键 属性 来检查 ModelState 以确定键(属性 名称)和相关错误

var errors = ModelState.Keys
                   .Where(k => ModelState[k].Errors.Count > 0)
                   .Select(k => new 
                   { 
                       propertyName = k, 
                       errorMessage = ModelState[k].Errors[0].ErrorMessage 
                   }).ToList()