Asp.net mvc ASP.NET Core 2.2未在IValidatableObject中激活验证方法
我正在尝试进行一些自定义验证,但似乎无法启动验证方法。请让我知道我可能遗漏了什么。谢谢 以下是我的代码: 型号:Asp.net mvc ASP.NET Core 2.2未在IValidatableObject中激活验证方法,asp.net-mvc,asp.net-core,Asp.net Mvc,Asp.net Core,我正在尝试进行一些自定义验证,但似乎无法启动验证方法。请让我知道我可能遗漏了什么。谢谢 以下是我的代码: 型号: public class TestModel : IValidatableObject { [Required] public string FirstName { get; set; } [Required] public string LastName { get; set; } public IEnumerable<ValidationR
public class TestModel : IValidatableObject
{
[Required]
public string FirstName { get; set; }
[Required]
public string LastName { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (FirstName == "Hello")
yield return ValidationResult.Success;
else
yield return new ValidationResult("Error from Validate method");
}
}
我还尝试使用以下方法将验证器添加到单个属性,但也不会触发:
public class MyValidator : ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
return new ValidationResult("Hello");
}
}
IValidatableObject
是类级验证。模型绑定时,它将调用Validate
方法来确定指定的对象是否有效。如果要激发验证方法,应将测试方法的参数类型更改为TestModel
,如下所示:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Test(TestModel model)
IValidatableObject
是类级验证。模型绑定时,它将调用Validate
方法来确定指定的对象是否有效。如果要激发验证方法,应将测试方法的参数类型更改为TestModel
,如下所示:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Test(TestModel model)
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Test(TestModel model)