仕事から自宅からの作業は、ルーティング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 { GET、SET ;} // 解析する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 =行動; リターン・ハンドラ; }); }
最初は、それが何度も繰り返しメソッドを使用しますが、ここで書いたが、それでも道ルート全体の流れ、我々は詳細次のパイプライン転送処理を次のルートますので、非常に明確ではありません。
作成し、ソースを示して再現。