既存の ASP.NET MVC 4 Web アプリケーション プロジェクトに Web API を追加するにはどうすればよいでしょうか? 質問する

既存の ASP.NET MVC 4 Web アプリケーション プロジェクトに Web API を追加するにはどうすればよいでしょうか? 質問する

追加したいASP.NET Web APIVisual Studio 2012 で開発された ASP.NET MVC 4 Web アプリケーション プロジェクトに。機能する Web API をプロジェクトに追加するには、どの手順を実行する必要がありますか? ApiController から派生したコントローラーが必要なことはわかっていますが、私が知っているのはそれだけです。

さらに詳しい情報を提供する必要がある場合はお知らせください。

ベストアンサー1

実行する必要があった手順は次のとおりです。

  1. への参照を追加しますSystem.Web.Http.WebHost
  2. 追加しますApp_Start\WebApiConfig.cs(以下のコード スニペットを参照)。
  3. System.Web.Httpの名前空間をインポートしますGlobal.asax.cs
  4. デフォルトの Web アプリケーション ルートを登録する前に、 (ファイル)WebApiConfig.Register(GlobalConfiguration.Configuration)を呼び出します。そうしないと、デフォルトの Web アプリケーション ルートが優先されます。MvcApplication.Application_Start()Global.asax.cs
  5. から派生したコントローラを追加しますSystem.Web.Http.ApiController

私はそこから十分に学ぶことができたチュートリアル(最初の ASP.NET Web API) を使用して、API コントローラーを定義します。

App_Start\WebApiConfig.cs:

using System.Web.Http;

class WebApiConfig
{
    public static void Register(HttpConfiguration configuration)
    {
        configuration.Routes.MapHttpRoute("API Default", "api/{controller}/{id}",
            new { id = RouteParameter.Optional });
    }
}

グローバル.asax.cs:

using System.Web.Http;

...

protected void Application_Start()
{
    AreaRegistration.RegisterAllAreas();

    RegisterGlobalFilters(GlobalFilters.Filters);
    WebApiConfig.Register(GlobalConfiguration.Configuration);
    RegisterRoutes(RouteTable.Routes);
    BundleConfig.RegisterBundles(BundleTable.Bundles);
}

2015年10月16日更新:

Word によると、上記が機能するには、NuGet パッケージ Microsoft.AspNet.WebApi がインストールされている必要があります。

おすすめ記事