C# кастомный ValidationAttribute не работает ASP.Net MVC

356
01 августа 2017, 14:44

Здравствуйте! Сделал свой атрибут валидации, который наследуется от ValidationAttribute, переопределил метод IsValid(object value, ValidationContext validationContext) и прописал атрибут свойству Login в классе RegisterModel. Все базовые атрибуты валидации прекрасно работают, однако этот - нет. 0 результата - в формах валидация не работает, только от встроенных атрибутов. Даже точки остановки не работают. Сам метод проверяет, существует ли пользователь с таким логином.

Код класса атрибута:

[AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = true)]
    public sealed class UniqueLoginAttribute : ValidationAttribute
    {
        Context Context = new Context(); // База данных (Entity Framework)
        public UniqueLoginAttribute(string Error)
        {
            ErrorMessage = Error;
        }
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            string temp = value.ToString().ToLower();
            if (Context.Users.Where(x => x.Login.ToLower() == temp).Count() == 0)
                return ValidationResult.Success;
            return new ValidationResult(ErrorMessage);
        }
    }

Код поля Login:

        [Required(ErrorMessage = "Обов'язкове поле")]
        [DisplayName("Логін")]
        [MinLength(5, ErrorMessage = "Логін повинен містити не менше 5 символів.")]
        [MaxLength(14, ErrorMessage = "Логін повинен містити не більше 14 символів.")]
        [RegularExpression(@"^[a-zA-Z0-9]+$", ErrorMessage = "Логін повинен містити тільки букви латинського алфавіту і цифри.")]
        [UniqueLogin("Користувач з заданим логіном вже зареєстрований!")]
        public string Login { get; set; }
READ ALSO
Обработка клика по элементу в ListView

Обработка клика по элементу в ListView

Есть ListView, в котором отображаются папкиМне нужно, чтобы по клику на элементе, в другом ListView отображались список файлов в папке на которую...

296
Создать xml файл без декларации

Создать xml файл без декларации

Необходимо сохранить xml файл на диск без декларации вида <?xml version="10" encoding="UTF-8"?>

266