select
MVC3フォームに複数のリストボックスがあります。ユーザーは、このリストボックスにカスタム要素を追加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}'アイテムがあります。
検証機能中にエラーメッセージを変更する方法はありますか?