是否可以使用MVC不显眼的适配器在验证功能期间自定义jquery验证消息?

时间:2011-10-04 18:53:19

标签: asp.net-mvc-3 jquery-validate unobtrusive-validation validationattribute

我在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}'项目。

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

1 个答案:

答案 0 :(得分:2)

您可以自定义消息。

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

相关问题