Пользовательская проверка на стороне клиента без выбора регулярного выражения - PullRequest
1 голос
/ 29 апреля 2019

Цель

Создание пользовательской проверки на стороне клиента с использованием AttributeAdapterBase и IValidationAttributeAdapterProvider.

Проблема

Я создал элемент ввода формы, используя тег helper. Эта форма / ViewComponent загружается, когда любой пользователь выбирает переключатель.

Кроме того, я создал пользовательскую проверку на стороне клиента в C # используя AttributeAdapterBase<SomeIdAttribute>.

У меня есть ViewComponent со следующим полем, оформленным как показано ниже:

[SomeId(@"^[a-zA-Z0-9-.]+[.]+[a-zA-Z0-9-.]+$"]
public string SomeId{ get; set; }

Другое поле с CustomValidation и регулярным выражением [TenantId("^[a-zA-Z0-9-]{36}$")] работает нормально.

Проблема возникает в коде ниже в методе AddValidation(ClientModelValidationContext context):

MergeAttribute(context.Attributes, "data-val-regex-pattern", Attribute.RegexPattern);

Упомянутое выше регулярное выражение не было успешно проанализировано, и шаблон регулярного выражения остается как null во время рендеринга HTML.

Для разбора я использовал строку ниже:

$.validator.unobtrusive.parse($('#someformID'));

Если я изменю регулярное выражение на какой-то простой формат, это сработает. Но это конкретное регулярное выражение не получает назначения.

Где-то отсутствует какая-либо escape-последовательность?

Если мы используем встроенный RegularExpression, проблема все та же.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...