在ASP.NET Core 2.1 MVC中,验证器可能不起作用的原因有很多。以下是一些可能的解决方法和代码示例:
[Required]
来标记必填字段,使用[Range]
来定义数值范围等。public class MyModel
{
[Required]
public string Name { get; set; }
[Range(1, 100)]
public int Age { get; set; }
}
ModelState.IsValid
属性来确定模型是否通过验证。[HttpPost]
public IActionResult Create(MyModel model)
{
if (!ModelState.IsValid)
{
// 处理验证失败的情况
return View(model);
}
// 处理验证成功的情况
// ...
return RedirectToAction("Index");
}
ValidationSummary
或ValidationMessageFor
等HTML辅助方法来显示验证错误消息。@model MyModel
services.AddMvc()
.AddMvcOptions(options =>
{
options.ModelBindingMessageProvider.SetValueMustNotBeNullAccessor(
_ => "该字段不能为空.");
})
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
通过以上方法,您应该能够解决ASP.NET Core 2.1 MVC验证器不起作用的问题,并显示相应的验证错误消息。如果问题仍然存在,请检查其他可能的原因,例如模型绑定、前端JavaScript验证等。