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