Я пытаюсь получить ненавязчивую проверку на стороне клиента, работающую в модуле Orchard, но у меня возникла проблема.
В этом примере я просто пытаюсь применить RequiredAttribute к полю текстового поля, используя Html.TextBoxFor ().
Мне кажется, что пользовательский ModelValidatorProvider, реализованный Orchard (LocalizedModelValidatorProvider), предотвращает отображение входных атрибутов HTML5, в частности:
data-val
data-val-required
для стандартного атрибута DataAnnotations RequiredAttribute. Эти атрибуты необходимы jQuery.validate.unobtrusive для работы.
LocalizedModelValidatorProvider сопоставляет RequiredAttribute с LocalizedRequiredAttribute, поэтому, возможно, это ошибка (или нереализованная функция) в Orchard ViewEngine при визуализации ввода текстового поля для свойства модели, украшенного атрибутом LocalizedRequiredAttribute?
Я подозреваю, что почему-то это не так. Происходит:
tagBuilder.MergeAttributes(htmlHelper.GetUnobtrusiveValidationAttributes(name, metadata));
(из System.Web.Mvc.Html.InputExtensions)
В настоящее время я использую Orchard 1.3.9.
Примечание: Хакерский обходной путь состоит в том, чтобы удалить регистрацию LocalizedModelValidatorProvider в модуле OrchardStarter и по умолчанию вернуться к стандартному провайдеру MVC 3, хотя я стараюсь не беспокоить источник Orchard, если это вообще возможно (не чтобы упомянуть, мне могут понадобиться локализованные сообщения в какой-то момент) ...