ModelState.IsValid总是返回False编辑表单



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的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()

最新更新