0

ブリーズの検証で問題が発生しました。

この特定の問題の根本的な原因は、そよ風の設計上の欠陥のように見えるものが原因である可能性が非常に高いようです. 具体的には、その検証エラーには、そのバリデータによって生成された検証メッセージのコピーが割り当てられません。代わりに、バリデーターに最後に提供されたコンテキストを使用して毎回メッセージが生成されます。

同じバリデーターから生成されたバリデーター エラーはすべて同じバリデーター インスタンスへの参照を共有し、このバリデーター インスタンスは提供された最後のコンテキストを使用して検証メッセージを形成することに気付くまで、これは問題にはなりません。

上記の結果は、おそらく次のシナリオで最もよく説明されます。

  1. ページにバインドされた同じエンティティの複数のインスタンスがある
  2. 両方のエンティティ インスタンスが、同じバリデータ インスタンスによって定義されたルールに違反しています
  3. エンティティ インスタンスごとに、異なるコンテキスト値が使用されます
  4. 両方の検証エラーに対して生成される 2 つのエラー メッセージは、バリデーターに提供された最後のコンテキストによって決定されます。
  5. したがって、最初の検証エラーのメッセージは、2 番目の検証エラーに提供されたコンテキストを使用します。

私が言うように、これは設計上の欠陥だと思いますが、そうではない理由の説明と、ハックのように感じない上記のシナリオを回避するための代替手段を喜んで提供します.

ありがとう

4

0 に答える 0