У меня есть несколько списков 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}'.
Есть ли способ изменить сообщение об ошибке во время функции проверки?