действительно, никогда не вызывать пользовательский атрибут проверки - PullRequest
1 голос
/ 20 мая 2011
public class SomeValidator : ValidationAttribute
{
    public SomeValidator()
        : base("Message")
    {

    }

    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
        return new ValidationResult("ERROR");
    }

И:

    [SomeValidator]
    public long Something { get; set; }

Почему метод Valid никогда не вызывается?(Я использую ASP MVC 3) Спасибо за помощь!

1 Ответ

1 голос
/ 20 мая 2011

Вы должны убедиться, что у вас есть действие контроллера, принимающее эту модель в качестве аргумента действия:

public class MyViewModel
{
    [SomeValidator]
    public long Something { get; set; }
}

и затем:

public ActionResult SomeAction(SomeModel model)
{
    ...
}

или что вы вызываете метод UpdateModel / TryUpdateModel:

public ActionResult SomeAction()
{
    var model = new SomeModel();
    if (TryUpdateModel(model))
    {

    }
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...