C#
 Computer >> コンピューター >  >> プログラミング >> C#

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

  1. ASP .Net MVC C#でのNonActionAttributeの重要性は何ですか?

    NonAction 属性は、コントローラーにパブリックメソッドが必要であるが、アクションメソッドとして扱いたくない場合に使用されます。アクションメソッドは、URLを使用して呼び出すことができるコントローラーのパブリックメソッドです。したがって、デフォルトでは、コントローラーにパブリックメソッドがある場合、URLリクエストを使用して呼び出すことができます。コントローラのパブリックメソッドへのアクセスを制限するには、NonAction属性を使用できます。 ここで、HomeControllerに2つのパブリックメソッドMyMethod1とMyMethod2があると考えてみましょう。 。 コントロ

  2. Asp.Net webAPI C#に組み込まれているメッセージハンドラーとは何ですか?

    メッセージハンドラは、HTTPリクエストを受信し、HTTPレスポンスを返すクラスです。メッセージハンドラーは、抽象HttpMessageHandlerクラスから派生します。メッセージハンドラーは、着信要求がHttpControllerDispatcherに到達する前に、処理、編集、または拒否する機会を提供します。 メッセージハンドラは、リクエスト処理パイプラインのかなり早い段階で実行されるため、WebAPIで横断的関心事を実装するのに最適な場所です。 MessageHandlerは、パイプラインを介したHTTPリクエストとレスポンスのプロセスの隣にあるクラスのチェーン(システムで定義されてい