1. ホーム
  2. c#

.NET CoreでApiControllerは非推奨なのか?

2023-10-21 07:48:39

質問

というのは本当ですか " ApiController は.NET Core"で非推奨になるというのは本当ですか?私は新しいプロジェクトでそれを使用することを計画しているので、尋ねています。

どのように解決するのですか?

ASP.NET Core 2.1 のアップデート

ASP.NET Core 2.1以降では、Web APIコントローラを作成するための新しいタイプのセットが利用できます。コントローラのアノテーションには [ApiController] 属性でアノテーションすることで、モデルの状態の自動検証やバインディングソースのパラメータ推論などのいくつかの新機能を利用することができます。詳しくはドキュメントをご覧ください。 https://docs.microsoft.com/en-us/aspnet/core/web-api/index?view=aspnetcore-2.1#annotate-class-with-apicontrollerattribute .


確かに、特に ApiController クラスはありません。しかし Controller クラスには、ビューやモデルバインディングなど、Web API のみの開発ではおそらく必要ない機能がたくさん含まれています。

何か違うものを求めるなら、2つのオプションがあります。

を使用する。 ControllerBase クラスを Microsoft.AspNetCore.Mvc.Core パッケージ内にある

または

あなたの ApiController 基底クラスを作成します。ここで重要なのは [ActionContext] 属性を追加することです。 ActionContext のインスタンスをプロパティに注入します。

[Controller]
public abstract class ApiController
{
    [ActionContext]
    public ActionContext ActionContext { get; set; }
}

また [Controller] 属性を追加し、MVC コントローラ検出のためのコントローラとしてマークします。

詳細は私の 「MVC 6 の Web API」ブログポストをご覧ください。 .