我在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}'项目。
有没有办法在验证功能期间更改错误信息?
答案 0 :(得分:2)
您可以自定义消息。
如果查看remote
中的jquery.validate.js
验证方法,您将看到自定义错误消息的示例,在这种情况下使用远程验证函数返回的消息。