Можно ли настроить сообщение проверки jquery во время функции проверки с использованием ненавязчивых адаптеров MVC?

У меня есть несколько списков 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}'.

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


person danludwig    schedule 04.10.2011    source источник


Ответы (1)


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

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

person counsellorben    schedule 05.10.2011
comment
Забавно, на днях я прочитал от вас еще один пост о null FormContext, из-за которого атрибуты data-val не отображаются при загрузке частичного представления с входными данными формы. Спасибо попробую это... - person danludwig; 06.10.2011