0

我在MVC3表单中有多个select列表框。用户可以在此列表框中添加&删除自定义option元素。不过,我想验证列表框中没有2个选项包含相同的值。是否可以使用MVC不显眼适配器在验证函数期间自定义jQuery验证消息?

我创建了一个实现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()函数中设置错误消息。

我曾尝试验证期间设定select元件上的data-val-noduplicatestringvalues属性,但仍显示像这样的错误消息:

字段名具有多于1“{1}”项。

有没有什么办法可以在验证功能中更改错误信息?

回答

2

您可以自定义消息。

如果您看中的remote验证方法,您将看到一个自定义错误消息的示例,在这种情况下使用从远程验证功能返回的消息。

+0

有趣的是,另外一天我读了另一篇关于null FormContext的文章,导致在使用表单输入加载部分视图时data-val属性不显示。谢谢你会试试这个... – danludwig

相关问题