C#ASP.NET Coreでのルーティングとは何ですか?
ルーティングは、リクエストをルートハンドラーにマッピングするために使用されます。
ルートはアプリケーションの起動時に構成され、リクエスト処理に使用されるURLから値を抽出できます。
ルーティングの基本
ルーティングはルートを使用します(IRouterの実装)
- 着信リクエストをルートハンドラにマッピングする
- 応答で使用されるURLを生成する
ルーティングは、RouterMiddlewareクラスによってミドルウェアパイプラインに接続されます。ASP.NETMVCは、構成の一部としてミドルウェアパイプラインにルーティングを追加します
URLマッチング
着信要求は、各ルートでRouteAsyncメソッドを順番に呼び出すRouterMiddlewareに入ります。
IRouterインスタンスは、RouteContextハンドラーをnull以外のRequestDelegateに設定することにより、要求を処理するかどうかを選択します。
ハンドラーにルートが設定されている場合、ハンドラーはリクエストを処理するために呼び出され、それ以上のルートは処理されません。
すべてのルートが実行され、リクエストのハンドラーが見つからない場合、ミドルウェアはnextを呼び出し、リクエストパイプラインの次のミドルウェアが呼び出されます。
URLの生成
URLの生成は同様の反復プロセスに従いますが、ルートコレクションのGetVirtualPathメソッドを呼び出すユーザーまたはフレームワークコードから始まります。
各ルートでは、null以外のVirtualPathDataが返されるまで、GetVirtualPathメソッドが順番に呼び出されます
ルートの作成
ルーティングは、IRouterの標準実装としてRouteクラスを提供します。Routeは、ルートテンプレート構文を使用して、RouteAsyncが呼び出されたときにURLパスと一致するパターンを定義します。
ルートは、GetVirtualPathが呼び出されたときに、同じルートテンプレートを使用してURLを生成します。
例
routes.MapRoute(name: "default", template: "{controller=Home}/{action=Index}/{id?}");
フレームワークは、-
などのルートを作成するための一連の拡張メソッドを提供します。MapRoute MapGet MapPost MapPut MapRoute MapVerb
-
ASP .Net MVC C#でのNonActionAttributeの重要性は何ですか?
NonAction 属性は、コントローラーにパブリックメソッドが必要であるが、アクションメソッドとして扱いたくない場合に使用されます。アクションメソッドは、URLを使用して呼び出すことができるコントローラーのパブリックメソッドです。したがって、デフォルトでは、コントローラーにパブリックメソッドがある場合、URLリクエストを使用して呼び出すことができます。コントローラのパブリックメソッドへのアクセスを制限するには、NonAction属性を使用できます。 ここで、HomeControllerに2つのパブリックメソッドMyMethod1とMyMethod2があると考えてみましょう。 。 コントロ
-
Asp.Net webAPI C#に組み込まれているメッセージハンドラーとは何ですか?
メッセージハンドラは、HTTPリクエストを受信し、HTTPレスポンスを返すクラスです。メッセージハンドラーは、抽象HttpMessageHandlerクラスから派生します。メッセージハンドラーは、着信要求がHttpControllerDispatcherに到達する前に、処理、編集、または拒否する機会を提供します。 メッセージハンドラは、リクエスト処理パイプラインのかなり早い段階で実行されるため、WebAPIで横断的関心事を実装するのに最適な場所です。 MessageHandlerは、パイプラインを介したHTTPリクエストとレスポンスのプロセスの隣にあるクラスのチェーン(システムで定義されてい