If you need a validation attribute on your input object that simply requires the user to tick a box to confirm something, you can use the following
using System.ComponentModel.DataAnnotations;
namespace YourApp.Validation;
public class MustConfirmAttribute : ValidationAttribute
{
protected override ValidationResult IsValid(object? value, ValidationContext validationContext) =>
value is bool boolValue && boolValue == true
? ValidationResult.Success!
: new ValidationResult(ErrorMessage ?? "Please confirm");
}
The class is then consumed like so
public class SignYourLifeAway
{
[Required]
public string Name { get; set; }
[MustConfirm]
public bool Confirmation { get; set; }
}
This will work with any app that uses Data Annotations as a form of validation, such as ASP.NET MVC apps or Blazor.

Comments