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