Доступ к объектам ValidationResult после проверки в AspNet (Core) - PullRequest
0 голосов
/ 15 мая 2018

Предположим, я пишу пользовательскую проверку для модели с помощью интерфейса 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?
        }
    }
}

Есть ли способ достичь этого?

...