ASP.NET:クライアント側とサーバー側の検証ルールの同期
-
01-07-2019 - |
質問
クライアント側とサーバー側の検証ルールの同期を保つための簡単で賢い方法はありますか?
クライアント側には JavaScript があり、おそらく jQuery や YUI などの何らかのフレームワークが使用されます。
サーバー側には、ASP.NET WebForms または ASP.NET MVC があります。
検証される内容は次のようなものです。
- 正しい電子メールアドレス
- 正しい自宅住所と郵便番号
- 正しいクレジットカード番号
等々。
解決
使ってみることができます ASP.NET統合によるエンタープライズライブラリ検証.
他のヒント
<asp: RegularExpressionValidator ...> (および他の asp.net バリデータ) は、クライアント側の JavaScript とサーバー側のチェックを同じルールに基づいて実装します。
検証ルールを具体化するテスト データの大規模な共通コーパスを作成し、この共通データに対してバリデーターの単体テストを行います。
ルールが変更されると、テスト データを更新し、すべてが再び緑色になるまでテストすることで、これを反映します。
私は常に組み込みのバリデーターを使用してきました。たとえば、 RegularExpressionValidator を使用して ValidationExpression を指定すると、クライアント側 (利用可能な場合) とサーバー側で同じコードを使用して検証されます。
BaseValidatior から派生して独自のカスタム バリデータを作成できます。これにより、EvaluteIsValid をオーバーライドしてサーバー検証を作成できるようになります。必要に応じて、後でクライアント検証を追加できます。
これは現実的な解決策ではありませんが、以下を確認してください。 アキシャルプロジェクト CodePlex で。これは、C# を Web 用の JavaScript に変換するプロジェクトであり、サーバー側の検証とクライアント側の検証に同じコードを使用できるようにするコントロールがあります。まだ製品化の準備ができていませんが、これがあなたが探しているものであるかどうか知りたいと思っています。
xVAL Enterprise Library Validation よりもかなり簡単で、クライアントとサーバーの両方のモデル バインドされた検証を処理します。