Asp.netコアMVC(3)UseMvcルーティング設定

仕事から自宅からの作業は、ルーティングMVCで探し続け、引き続き、すべて、ナンセンスを確認してください。

asp.net MVCルーティングコアは、コアルーティングasp.netの上に構築されています。この上に詳述しないことで、ミドルウェアエンドポイント構成をルーティングするロードし、( DOTNETコアMVC(b)は、既に記載します)。負荷に他の方法を見に:

app.UseMvc(ルートが=> 
{ 
  // 指定された名前とテンプレートのルートIRouteBuilderに追加される。が 
   routes.MapRoute(" デフォルト"" {ホーム}上記ID上記コントローラ/アクション= {索引} / {} =?" )。
});

このようにして(ミドルウェアルーティングエンドポイント負荷を使用して).NETコア3.0を使用するように指示されます

 

 

私たちは、コードに追加するには、プロンプトに従います。

ConfigureServicesメソッドが追加さ:

// ない対応エンドポイント 
services.AddMvc(オプション=> options.EnableEndpointRouting = );
パブリック 静的 IApplicationBuilder UseMvc(この IApplicationBuilderアプリケーション、アクション<IRouteBuilder> configureRoutes 
{ 
    場合(アプリ== NULL 
    { 
        スロー 新しい例外ArgumentNullExceptionを(がNameOf(APP)); 
    } 
    場合(configureRoutes == NULL 
    { 
        スロー 新しい例外ArgumentNullException(がNameOf(configureRoutes)を); 
    } 
    // 在调用UseMvc之前验证AddMvc是否已完成
    VerifyMvcIsRegistered(APP);
     VARのオプション= app.ApplicationServices.GetRequiredService <IOptions <MvcOptions >> ();
     なら(options.Value.EnableEndpointRouting)
    { 
        VARのメッセージ=
             " エンドポイントのルーティングは'IApplicationBuilder.UseMvcを(...)'をサポートしていません。使用するには、" +
             " 内の'IApplicationBuilder.UseMvc' SET 'MvcOptions.EnableEndpointRouting = false'を" +
             " 「ConfigureServices(...)。" ;
        スロー 新しいInvalidOperationExceptionが(メッセージを)。
    
     
    {App.ApplicationServices.GetRequiredService = <MvcRouteHandler> ()
    }; 
    // 構成MVCルートコールバック
    configureRoutes(ルート);
     // CreateAttributeMegaRoute:iRouterのは、主にRouteAttributeを処理するために使用される戻りアクションマーク 
    routes.Routes.Insertを(0 、AttributeRouting.CreateAttributeMegaRoute(app.ApplicationServices));
     // ルートにミドルウェアルーティング・フィールドを開発するために使用される制動ApplicationBuilder 
    リターンapp.UseRouter(routes.Build()); 
}
パブリック インターフェースIRouteBuilder 
{ 
    // 取得applictionbuilder(デリゲートアプリケーション要求パイプラインに追加ミドルウェア) 
    IApplicationBuilder ApplicationBuilder { GET ;}
     // 取得ルーティング(コア) 
    iRouterのたDefaultHandler { GETSET ;}
     // 解析するIServiceProviderルートを取得しますサービスのセット 
    IServiceProviderのServiceProvider { GET ;}
     // ルートを取得セット 
    のIList <iRouterの>ルート{ GET ;} 
    )(iRouter のビルド; 
}
// 主要是用来处理RouteAttribute标记的アクション、
公共の 静的iRouterのCreateAttributeMegaRoute(IServiceProviderサービス)
{ 
    場合(サービス== nullの
    { 
        スロー 新しい例外ArgumentNullException(がNameOf(サービスを)); 
    } 
    戻り 新しいAttributeRouteを(
        services.GetRequiredService <IActionDescriptorCollectionProvider> ()、
        サービス、
        アクション => 
        { 
            VARハンドラ= services.GetRequiredService <MvcAttributeRouteHandler> (); 
            handler.Actions =行動;
            リターン・ハンドラ; 
        }); 
}

最初は、それが何度も繰り返しメソッドを使用しますが、ここで書いたが、それでも道ルート全体の流れ、我々は詳細次のパイプライン転送処理を次のルートますので、非常に明確ではありません。

 作成し、ソースを示して再現。
 

 

 

 

おすすめ

転載: www.cnblogs.com/xtt321/p/12343934.html