.NETコア3は、エンドポイントコントローラをマッピングすることができません

科学は研究が解決策を見つけた後、問題が問題と呼ばれることはないかもしれないが、私は初心者だった、あなたが追加した生と死エンドポイントマッピングコントローラ、問題のネットコアではない発見したときに今日、私はキャリーにこの問題を置きますアウト。私の開発環境VS2019 +ネットコア3.1、問題を再現するためのプロセス:

空のプロジェクトを選択し、新しいWebコアプロジェクトを作成します。1.

2.新しいフォルダ「コントローラ」、右のフォルダを作成します - >コントローラ - - 追加>> APIコントローラ - 空 - >セット名「HomeController.cs」

3経路(「[コントローラー]」)]の変更ルーティング機能 

文字列のテストを返し、このクラスのルーターにインデックス機能を追加4.

5.変更スタートアップクラスの設定機能:

オリジナルコード:

app.UseEndpoints(エンドポイント=> 
{ 
  endpoints.MapGet(" / "非同期コンテキスト=> 
  { 
    のawait context.Response.WriteAsync(" Hello Worldの!" ); 
  }); 
});    

改訂コード:

app.UseEndpoints(エンドポイント=> 
{ 
  endpoints.MapControllerRoute(" デフォルト"" {コントローラ=ホーム} / {アクション=ランキング} / {ID}?" ); 
});

プログラム表示404を実行します

その後にHomeController二つの特徴は、正常に動作し、削除することができます

その理由は、APIコントローラおよびMVCコントローラは同じではありません

MVCコントローラのアクションメソッドのURLの選択

HTTPリクエストメソッドのAPIのAPIコントローラを選択する異なる制御方法

コントローラによって使用される2つの方法が同じではない、それは使用と混同することはできません

 

おすすめ

転載: www.cnblogs.com/Groveer/p/12030311.html