Предположим, я пишу пользовательскую проверку для модели с помощью интерфейса IValidatableObject
:
public class MyModel : IValidatableObject
{
public string Name { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (Name == "Foo")
{
yield return new CustomValidationResult(42, nameof(Name));
}
}
}
public class CustomValidationResult : ValidationResult
{
public CustomValidationResult(int bar, string memberName) : base("FooBar", new[] { memberName })
{
Bar = bar;
}
public int Bar { get; private set; }
}
Теперь я хотел бы получить доступ к объекту CustomValidationResult
внутри контроллера или из фильтра действий.Например:
public class MyActionFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext context)
{
if (!context.ModelState.IsValid) {
// How to access the validation result?
// Specifically, how to get the value '42' from here?
}
}
}
Есть ли способ достичь этого?