Asp.net MVCアプリには、カスタムバリデータークラスVと(ADO.NETエンティティ)エンティティモデルEがあります。
class V : ValidationAttribute
{
public override bool IsValid(object value)
{
...
if (hasErrors)
ErrorMessage = errorMsg;
...
}
}
public partial class E //the entity model
{
[V]
public object A {get;set;}
}
エンティティモデルEのカスタムプロパティPにバリデーターVを適用しました。バリデーターVはIsValidにエラーメッセージを設定します。
ただし、エンティティモデルEのインスタンスが(Asp.net MVCビューから)何度も再利用され続けているように見え、Eで検証が実行されるたびに、同じバリデーターインスタンスが使用されます。
バリデーターはErrorMessageプロパティに書き込み、ErrorMessageプロパティに複数回書き込むことはできないため、最初の検証の後に実行されるすべての検証によってクラッシュが発生します。
誰かがこれを解決する方法を知っていますか?