首先,需要检查代码中的表单验证。如果出现任何验证问题,可能会导致提交表单失败。
例如,在以下示例中,验证注释可能会阻止表单的提交:
[HttpPost]
public IActionResult Create([Bind("Title,Author,Price")] Book book)
{
if(ModelState.IsValid)
{
...
}
return View(book);
}
如果某个属性未通过模型验证,那么ModelState.IsValid
将返回false,导致方法提前返回。在这种情况下,表单提交不被触发。
您可以通过移除验证注释或使用其他表单验证方法来解决此问题。例如,您可以将以下方法用于查找验证错误:
if(!ModelState.IsValid)
{
foreach(var error in ModelState.Values.SelectMany(v => v.Errors))
{
Console.WriteLine(error.ErrorMessage);
}
}
检查这些验证错误和代码中的其他因素,以确定为什么表单提交无法工作。