Использование DataAnnotations 4.0 - PullRequest
5 голосов
/ 03 июня 2010

Я использую DA 4.0 с приложением MVC и создал собственный валидатор, как показано ниже:

public static ValidationResult NumberOfItems(int numItems, ValidationContext pValidationContext)
{
    if (numItems == 1)
    {
        //Tag as critical error
        //return new ValidationResult... 
    }

    if (numItems > 1 && numItems <= 10)
    {
        //Tag as non critical error
    }

    //Else it's successful
    return ValidationResult.Success;
}

Я хотел бы отметить сообщение об ошибке как критическую ошибку или нет. Если это не критическая ошибка, я хотел бы получить к ней доступ в моем представлении и отобразить ее по-другому.

Итак, есть 2 части к этому:

  1. Сбой тегов как различных типов в пользовательском валидаторе
  2. Измените ModelBinder по умолчанию, чтобы идентифицировать критическую ошибку

Как бы я это сделал?

1 Ответ

2 голосов
/ 03 июня 2010

Оба ваших вопроса требуют переписывания целой пачки внутреннего кода обработки ошибок MVC. Я не вижу простого пути добавления серьезности ошибок ко всем различным местам проверки ModelState и ViewModel.

Единственный ответ на вопрос «Как бы я это сделал?» "с большим количеством пользовательского кода". ;)

...