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