0

我有一个 MVC3 表单中的多个select列表框。用户可以option在此列表框中添加和删除自定义元素。但是我想验证列表框中没有 2 个选项包含相同的值。

我创建了一个实现 IClientValidatable 的自定义 ValidationAttribute。服务器和客户端验证都在工作。但是,我的 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}”项。

有没有办法在验证功能期间更改错误消息?

4

1 回答 1

2

您可以自定义消息。

如果您查看 中的remote验证方法jquery.validate.js,您将看到自定义错误消息的示例,在这种情况下使用从远程验证函数返回的消息。

于 2011-10-05T21:03:42.723 回答