Проверка моделей с использованием аннотации RegularExpression

1

Я добавил фильтр в свой веб-проект api для проверки всех моделей, которые передаются от клиента. Чтобы проверить модели, я использую аннотации данных. Кажется, все работает отлично, за исключением случаев, когда я использую аннотацию RegularExpression.

Это фильтр, который у меня есть в моем api:

    public override void OnActionExecuting(HttpActionContext actionContext)
    {
        if (actionContext.ModelState.IsValid == false)
        {
            actionContext.Response = actionContext.Request.CreateErrorResponse(
                HttpStatusCode.BadRequest, actionContext.ModelState);
        }
    }

И это свойство модели, которое не корректно проверяется:

    [Required]
    [MinLength(8)]
    [StringLength(255)]
    [RegularExpression(@"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)", ErrorMessage = "Password must contain at least one capital letter and one number")]
    public string Password { get; set; }

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

Теги:
asp.net-web-api
data-annotations

1 ответ

0
Лучший ответ

Попробуй это:

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).*$

Вероятно, ваше выражение возвращает null когда пароль корректно сформирован.

  • 1
    Вот и все! Спасибо!
  • 0
    @jorgenv, добро пожаловать.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню