asp.net ActionFilter フィルター
この記事では、主に asp.net core MVC フィルターの ActionFilter フィルターについて詳しく紹介します。興味のある方は参考にしてください。
このシリーズでは、asp.net core MVC の組み込みフィルターの使用について説明します。以下の章に分かれます
asp.net core MVCフィルター - ExceptionFilterフィルター(1)
asp.net core MVCフィルター - ActionFilterフィルター(2)
asp.net core MVCフィルターResultFilterフィルター(3)
asp.net core MVC フィルター ResourceFilter フィルター (4)
asp.net core MVC フィルター AuthorizationFilter フィルター (5)
はじめに
Action フィルターは、コントローラーの Action が実行される前後に、対応するメソッドを実行します。
カスタムアクションフィルターの実装
グローバル例外フィルターをカスタマイズするには、IActionFilterインターフェースを実装する必要があります
public class ActionFilter : IActionFilter { public void OnActionExecuted(ActionExecutedContext context) { Console.WriteLine("action执行之后"); } public void OnActionExecuting(ActionExecutingContext context) { Console.WriteLine("action执行之前"); } }
IActionFilterは、OnActionExecutedとOnActionExecutingの2つのメソッドを実装する必要があります。 OnActionExecuting は Action の前に実行され、OnActionExecuted は Action の後に実行されます。
原理を理解した後、その機能を使用してコードを簡素化できます。MVC の重要な概念は、モデルの制約を定義し、アクションでモデルが正常にバインドされているかどうかを検証することです。コード
[HttpGet] public ActionResult Get() { if (!ModelState.IsValid) return BadRequest("参数错误!"); }
このようなコードの繰り返しはコードの複雑さを増すだけでなく、見苦しくなります
public void OnActionExecuting(ActionExecutingContext context) { if (context.ModelState.IsValid) return; var modelState = context.ModelState.FirstOrDefault(f => f.Value.Errors.Any()); string errorMsg = modelState.Value.Errors.First().ErrorMessage; throw new AppException(errorMsg); }
モデルバインディングエラーが発生した場合、例外メッセージをスローします。前の章の例外フィルター ExceptionFilter でキャプチャされたエラー情報は、リクエスターに返されます。
ActionFilter の機能を使用して、アクションの実行時間を記録し、アクションの実行時間が遅すぎる場合に警告ログを出力することもできます
public class ActionFilter : IActionFilter { public void OnActionExecuted(ActionExecutedContext context) { var httpContext = context.HttpContext; var stopwach = httpContext.Items[Resources.StopwachKey] as Stopwatch; stopwach.Stop(); var time = stopwach.Elapsed; if (time.TotalSeconds > 5) { var factory = context.HttpContext.RequestServices.GetService<ILoggerFactory>(); var logger = factory.CreateLogger<ActionExecutedContext>(); logger.LogWarning($"{context.ActionDescriptor.DisplayName}执行耗时:{time.ToString()}"); } } public void OnActionExecuting(ActionExecutingContext context) { var stopwach = new Stopwatch(); stopwach.Start(); context.HttpContext.Items.Add(Resources.StopwachKey, stopwach); } }
上記のコードは、HttpContext を使用して Stopwach を渡し、アクションの実行時間が5秒を超えると警告ログが出力されます。
グローバルフィルターの登録
登録方法はExceptionFinterと同様です。システムのルート ディレクトリで Startup.cs ファイルを見つけて、ConfigureServices を次のように変更します
services.AddMvc(options => { options.Filters.Add<ActionFilter>(); });
以上がasp.net ActionFilter フィルターの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Vue エラー: フィルター内のフィルターが正しく使用できません。解決するにはどうすればよいですか?はじめに: Vue では、フィルターはデータの書式設定やフィルター処理に使用できる一般的に使用される関数です。ただし、使用中にフィルターを正しく使用できないという問題が発生する場合があります。この記事では、いくつかの一般的な原因と解決策について説明します。 1. 原因分析: フィルターが正しく登録されていません: Vue のフィルターは、テンプレートで使用する前に登録する必要があります。フィルタが正常に登録されなかった場合は、

Vue テクノロジ開発でデータをフィルタリングおよび並べ替える方法 Vue テクノロジ開発では、データのフィルタリングと並べ替えは非常に一般的で重要な機能です。データのフィルタリングと並べ替えを通じて、必要な情報を迅速にクエリして表示できるため、ユーザー エクスペリエンスが向上します。この記事では、Vue でデータをフィルターおよび並べ替える方法を紹介し、読者がこれらの関数をよりよく理解して使用できるように具体的なコード例を示します。 1. データのフィルタリング データのフィルタリングとは、特定の条件に基づいて要件を満たすデータをフィルタリングすることを指します。 Vue では、comp を渡すことができます

PHP 電子メール フィルター: スパムをフィルターして識別します。電子メールの普及に伴い、スパムの量も増え続けています。ユーザーにとって、受信するスパムの量は情報過多や時間の無駄につながる可能性があります。したがって、スパムメールをフィルタリングして識別する効率的な方法が必要です。この記事では、PHP を使用してシンプルだが効果的な電子メール フィルターを作成する方法と、具体的なコード例を示します。電子メール フィルタの基本原則 電子メール フィルタの基本原則は、電子メールが

Vue3 のフィルター関数: データをエレガントに処理する Vue は、大規模なコミュニティと強力なプラグイン システムを備えた人気のある JavaScript フレームワークです。 Vue のフィルター関数は、テンプレート内のデータを処理して書式設定できる非常に実用的なツールです。 Vue3 のフィルター関数にはいくつかの変更が加えられています。この記事では、Vue3 のフィルター関数を詳しく説明し、それらを使用してデータを適切に処理する方法を学びます。フィルター機能とは何ですか? Vue のフィルター関数は次のとおりです。

FILTER_VALIDATE_URL 定数は、URL を検証するために使用されます。フラグ FILTER_FLAG_SCHEME_REQUIRED-URL は RFC に準拠している必要があります。 FILTER_FLAG_HOST_REQUIRED - URL にはホスト名が含まれている必要があります。 FILTER_FLAG_PATH_REQUIRED - URL にはドメイン名の後にパスが必要です。 FILTER_FLAG_QUERY_REQUIRED - URL にはクエリ文字列が必要です。戻り値 FILTER_VALIDATE_URL

プラグインを使用して Vue でカスタム フィルターを実装するためのヒント Vue.js には、ビュー データのフィルター処理の必要性に対処する便利な方法、つまりフィルター (Filter) が提供されます。フィルターは主に、ビュー内のデータの書式設定と処理を担当して、データをより直感的で理解しやすくします。 Vue には、日付書式設定、通貨書式設定などの一般的に使用されるフィルターがいくつか組み込まれており、カスタム フィルターもサポートしています。この記事では、Vue プラグインを使用してカスタム フィルターを実装する方法を紹介し、いくつかの実用的なフィルター手法を提供します。

Tomcat での中国語の文字化けの問題を解決するためのいくつかの方法 (具体的なコード例が必要) Web 開発では、Tomcat での中国語の文字化けの問題によく遭遇します。この問題により、漢字を処理するときに文字化けが発生したり、ボックス、疑問符、その他の文字が表示されたりして、ユーザーに不快な体験をもたらします。この問題を解決するために、この記事では一般的に使用されるいくつかの方法を紹介し、具体的なコード例を示します。 Tomcat 設定ファイルを変更します。Tomcat インストール ディレクトリで conf/server.xml ファイルを見つけ、デフォルトのファイルを検索します。

PHP で RESTfulAPI データのフィルタリングと並べ替えを実装する方法 Web アプリケーションの継続的な開発により、RESTfulAPI は最新のアプリケーションで一般的に使用されるデータ対話方法の 1 つになりました。 REST アーキテクチャでは、ユーザーのニーズを満たすデータを返すために、API の設計と実装でデータのフィルタリングと並べ替えを考慮する必要があります。この記事では、RESTfulAPIのデータフィルタリングとソート機能をPHPで実装する方法をコード例とともに紹介します。 1. RESTfuでのデータフィルタリング
