ASP.NET.Не работает атрибут валидации [требует правки]

178
04 декабря 2017, 14:19

Создал атрибут валидации

public class OnlyLetters : ValidationAttribute
{
    public override bool IsValid(object value)
    {
            return false;
    }
}

Для модели

public class RegisterModel
    {
        [Required(ErrorMessage = "Обязательное поле")]
        [StringLength(50)]
        [EmailAddress(ErrorMessage = "Введите корректный Email")]
        public string Email { get; set; }
        [Required(ErrorMessage = "Обязательное поле")]
        [StringLength(20, MinimumLength = 1, ErrorMessage = "Введите свое настоящее имя")]
        [OnlyLetters(ErrorMessage = "Строка должна содержать только буквы")]
        public string First_name { get; set; }
        [Required(ErrorMessage = "Обязательное поле")]
        [StringLength(30,MinimumLength = 1, ErrorMessage = "Введите свою настоящую фамилию")]
        [OnlyLetters(ErrorMessage = "Строка должна содержать только буквы")]
        public string Last_name { get; set; }
        [Required(ErrorMessage = "Обязательное поле")]
        [StringLength(30, MinimumLength = 10, ErrorMessage = "Пароль должен содержать не менее 10 и не более 30 символов")]
        public string Password { get; set; }
        [Required(ErrorMessage = "Обязательное поле")]
        [Column(TypeName = "date")]
        public DateTime Birthday { get; set; }
    }

Есть представление, для инициализации этих значений

@using SocialNetwork.Models.Account
@model AuthModels.RegisterModel
@using (Html.BeginForm())
{
   @Html.TextBoxFor(t => t.First_name, new { placeholder = "Имя" })
   @Html.ValidationMessageFor(m => m.First_name)
   <br />
   <br />
   @Html.TextBoxFor(t => t.Last_name, new { placeholder = "Фамилия" })
   @Html.ValidationMessageFor(m => m.Last_name)
   <br />
   <br />
   @Html.TextBoxFor(t => t.Email, new { placeholder = "Email" })
   @Html.ValidationMessageFor(m => m.Email)
   <br />
   <br />
   @Html.PasswordFor(t => t.Password, new { placeholder = "Пароль" })
   @Html.ValidationMessageFor(m => m.Password)
   <br />
   <br />
   <input type="date" name="Birthday" id="Birthday"/>
   @Html.ValidationMessageFor(m => m.Birthday)
   <br />
   <input type="submit" value="Зарегистрироваться"/>
}

Но почему-то этот атрибут не работает, по сути он всегда должен возвращать ошибку

Answer 1

Через боль и мучения я разобрался с этим вопросом.На самом деле, валидация проходила, только на стороне сервера, когда я ожидал на стороне клиента

READ ALSO
Как добавить коллизию на объект по форме объекта в Unity3d?

Как добавить коллизию на объект по форме объекта в Unity3d?

В игре есть объект, у которого непримитивная формаНужно добавить коллизию, которая соответствовала бы этой форме

195
Как задать одному объекту скорость и направление другого в Unity3D?

Как задать одному объекту скорость и направление другого в Unity3D?

У меня есть два объекта в сценеОдин из них я "запускаю" с помощью SpringJoint2D

253
Загрузка Assembly

Загрузка Assembly

В официальной документации показан пример

149
Как можно изменить переменную в скрипте?

Как можно изменить переменную в скрипте?

У меня есть некий скрипт Respawncs, у которого есть логическая переменная isActivated

193