Можно ли настроить сообщение проверки JQuery во время функции проверки с использованием ненавязчивых адаптеров MVC? - PullRequest
0 голосов
/ 04 октября 2011

У меня есть несколько select списков в форме MVC3. Пользователь может добавлять и удалять пользовательские элементы option в и из этого списка. Однако я хочу проверить, что никакие 2 опции в списке не содержат одинаковое значение.

Я создал собственный атрибут ValidationAttribute, который реализует IClientValidatable. Проверка сервера и клиента работают. Тем не менее, мой ErrorMessage выглядит так:

ErrorMessage = "{0} has more than 1 '{1}' option.")

К сожалению, я могу передать только частично отформатированное сообщение в сообщение проверки клиента, и я делаю это так:

var rule = new ModelClientValidationRule
{
    ErrorMessage = FormatErrorMessage(metadata.GetDisplayName()),
    ValidationType = "noduplicatestringvalues",
};

Проверка не будет знать, какое значение параметра дублируется, пока проверка не будет запущена, поэтому я хочу завершить форматирование сообщения во время функции проверки.

Однако, похоже, что сообщение об ошибке может быть установлено только во время функции $.validator.unobtrusive.adapters.add().

Я попытался установить атрибут data-val-noduplicatestringvalues для элемента select во время проверки, но сообщение об ошибке по-прежнему отображается так:

FieldName содержит более 1 элемента {1}.

Есть ли способ изменить сообщение об ошибке во время проверки?

1 Ответ

2 голосов
/ 06 октября 2011

Вы можете настроить сообщение.

Если вы посмотрите на метод проверки remote в jquery.validate.js, вы увидите пример настройки сообщения об ошибке, в этом случае с использованием сообщения, возвращенного функцией удаленной проверки.

...