@page "/"
@using System.ComponentModel.DataAnnotations
<EditForm Model="@exampleModel" OnValidSubmit="HandleValidSubmit">
<DataAnnotationsValidator />
<ValidationSummary />
<InputText id="name" @bind-Value="exampleModel.Name" />
<button type="submit">Submit</button>
</EditForm>
@code {
public class CustomValidationAttribute : ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
var service = (IFakeService) validationContext.GetService(typeof(IFakeService));
System.Console.WriteLine( service.Hi );
return ValidationResult.Success;;
}
}
public class ExampleModel
{
[Required]
[CustomValidationAttribute]
[StringLength(10, ErrorMessage = "Name is too long.")]
public string Name { get; set; }
}
private ExampleModel exampleModel = new ExampleModel();
private void HandleValidSubmit()
{
Console.WriteLine("OnValidSubmit");
}
}