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

时间:2018-11-09 14:33:25

标签: c# asp.net-mvc entity-framework modelstate

ModelState.IsValid在我的编辑表单中始终返回false。它甚至都没有成功。我在做什么错了?

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

1 个答案:

答案 0 :(得分:0)

代码说明了什么。模型无效。关于通过端点传递的模型,这可能是任何事情。也许ItemModel在其属性之一上具有[Required]属性,而您试图在该属性上传递NULL值。

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

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