この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 45361|答える: 1

[ASP.NET] ASP.NET Core(4) フィルター 統一モデルステートモデル検証

[リンクをコピー]
2021年3月13日 20:48:05 に投稿 | | | |
C#のモデル状態やデータ注釈は、データ検証を要求する便利な方法を提供します。 ModelStateモデル検証とは、バックエンドがパラメータ検証の作業を大幅に節約し、対応する特徴を追加し、最終的にコントローラーでModelState.IsValidを呼び出して検証結果を得るという意味です。 ModelStateがなければ、バックエンドのパラメータ検証で多くのif判断を書く必要があるかもしれません。

要件:POSTのパラメータがフィルターでモデル検証に合格しているかどうかを判断し、もし合格しなければ、検証が完了した後に統一されたjsonエラーメッセージを直接返し、その後コントローラメソッドに入ります。この方法の利点は、各コントローラーを評価したり、繰り返し作業をする必要はない

ModelStateモデル検証のレビュー

webapi ModelState.IsValid モデル検証
https://www.itsvse.com/thread-3809-1-1.html

MVC ASP.NET モデルフィールドを手動で検証します
https://www.itsvse.com/thread-9500-1-1.html

Asp.net コアモデルデータ検証
https://www.itsvse.com/thread-9016-1-1.html

レビューフィルター

mvc custom filter ActionFilterAttribute class

https://www.itsvse.com/thread-2609-1-1.html

ASP.NET コアの知識を見直しましょう

ASP.NET コア(iii) ActivatorUtilitiesを用いて動的にインスタンスを作成する
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET コア(2) コードによるアプリケーションの再起動
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core(1)はRedisキャッシュを使用しています
https://www.itsvse.com/thread-9393-1-1.html

システムはValidationAttributeをあらかじめ定義しています
ValidationAttributeから継承する一連の検証機能がSystem.ComponentModel.DataAnnotations名前空間の下で定義されています。

  • RequiredAttribute:必要なデータフィールドの検証に使用されます。
  • RangeAttribute:数値フィールドの値が指定された範囲内であることを検証するために使用されます。
  • StringLengthAttribute:ターゲットフィールドの文字列長が指定された範囲内であることを検証するために使用されます。
  • MaxLengthAttribute/MinLengthAttribute:文字/配列辞書の長さが指定された上限/下限より小さいか大きいかを検証するために使用されます。
  • RegularExpressionAttribute:文字列フィールドのフォーマットが指定された正則表現と一致しているかを検証するために使用されます。
  • CompareAttribute:ターゲットフィールドの値が他のフィールドの値と整合しているかを検証するために使用され、ユーザー登録シナリオでパスワードを2回入力するかどうかの整合性を確認するために使用できます。
  • CustomValidationAttribute:ターゲットメンバーを検証するための検証タイプと検証メソッドを指定します。



もちろん、ValidationAttributeクラスを継承し、対応するメソッドを実装することで検証ルールを定義することもできます。

まずレンダリングを見てみましょう。エラーメッセージはバックグラウンドインターフェースから次のように返されます。



オブジェクトモデルコード:

ModelStateFilterフィルターコード:



IsAjaxRequestのコードは以下の通りです:

最後に、スタートアップファイルにカスタムフィルターを追加してください。コードは以下の通りです:



(終わり)




先の:HtmlAgilityPackはロールアップのためのHTMLヒントを解析します
次に:.NET CoreはBaidu PaddleOCRを呼び出して画像やテキストを認識します
2021年9月22日 20:40:25に投稿 |
学ぶことを...
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com