Цель
Создание пользовательской проверки на стороне клиента с использованием 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
, проблема все та же.