Контекст IValidatableObject

Я использую IValidatableObject/Validator для проверки моих моделей mvc. Так что у меня есть что-то вроде этого

public class Parent
{
    public Child Child { get; set; }
}

public class Child
{
    [Required]
    public string Name { get; set; }
}

Поэтому, если я запускаю валидатор на родительском экземпляре, я получаю что-то вроде «Требуется имя».

Я хотел бы, чтобы «требуется Child.Name», поэтому он должен включать имя свойства «Child». Могу ли я это сделать, и если смогу, то как?


person Pintac    schedule 19.11.2013    source источник


Ответы (1)


Это, конечно, не будет работать из коробки, потому что атрибут привязан к свойству.

Но вы можете просто определить собственное сообщение об ошибке для атрибута, определив его

public class Child
{
   [Required(ErrorMessageString="Child.Name is required")]
   public string Name { get; set; }
}
person MichaC    schedule 19.11.2013
comment
Привет. Спасибо, проблема в том, что мне нужно иметь возможность проверить ребенка самостоятельно. Так что мне как-то нужно иметь возможность передавать контекст (да, я думал, что контекст проверки поможет, но я не мог заставить что-либо работать) - person Pintac; 19.11.2013