Ваша модель может реализовать IValidatableObject
(внутри System.ComponentModel.DataAnnotations namespace
)
Ваша модель должна выглядеть примерно так:
public class Employee : IValidatableObject
{
public string EmployeeName;
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
char secondNameChar = EmployeeName[1];
char thirdNameChar = EmployeeName[2];
if (secondNameChar.ToString().ToLower() != "e")
yield return
new ValidationResult("Second char of name should be 'E'",
new[] {"EmployeeName"});
if (thirdNameChar.ToString().ToLower() != "f")
yield return
new ValidationResult("Third char of name should be 'F'",
new[] {"EmployeeName"});
}
}
Обратите внимание, что добавьте другие свойства сотрудника в этот класс и выполните проверку в методе Validate
.
А теперь на контроллере, если вы вызываете ModelState.IsValid
для недопустимого объекта, это завершается ошибкой и возвращает две ошибки и показывает их обе пользователю.