我有一个 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}”项。
有没有办法在验证功能期间更改错误消息?