Asp.net-core-setup-mvc

提供:Dev Guides
移動先:案内検索

ASP.NET Core-MVCのセットアップ

この章では、FirstAppDemoアプリケーションでMVCフレームワークをセットアップします。 ASP.NET Core、より具体的にはASP.NET Core MVCフレームワークの上にWebアプリケーションを構築することから始めます。 ミドルウェアのみを使用してアプリケーション全体を技術的に構築できますが、ASP.NET Core MVCはHTMLページとHTTPベースのAPIを簡単に作成するために使用できる機能を提供します。

空のプロジェクトでMVCフレームワークをセットアップするには、次の手順に従います-

  • Microsoft.AspNet.Mvc パッケージをインストールします。これにより、フレームワークによって提供されるアセンブリとクラスにアクセスできます。
  • パッケージをインストールしたら、ASP.NET MVCが実行時に必要とするすべてのサービスを登録する必要があります。 これは ConfigureServices メソッド内で行います。
  • 最後に、ASP.NET MVCがリクエストを受信するためのミドルウェアを追加する必要があります。 基本的に、このミドルウェアはHTTPリクエストを受け取り、そのリクエストを作成するC#クラスに転送しようとします。
  • ステップ1 *-NuGetパッケージの管理を右クリックして、NuGetパッケージマネージャーに移動します。 Microsoft.AspNet.Mvcパッケージをインストールします。これにより、フレームワークによって提供されるアセンブリおよびクラスにアクセスできます。

Microsoft.AspNet.MVC

  • ステップ2 *-Microsoft.AspNet.Mvcパッケージをインストールしたら、ASP.NET Core MVCが実行時に必要とするすべてのサービスを登録する必要があります。 ConfigureServicesメソッドを使用してこれを行います。 また、単純なコントローラーを追加し、そのコントローラーからの出力を確認します。

このプロジェクトに新しいフォルダーを追加して、 Controllers と呼びましょう。 このフォルダーには、ソリューションエクスプローラーで以下に示すように複数のコントローラーを配置できます。

コントローラー

Controllersフォルダーを右クリックし、 Add→Class メニューオプションを選択します。

クラスの追加

ステップ3 *-ここでは、単純な C#クラスを追加し、このクラスを *HomeController と呼び、上のスクリーンショットのように[追加]ボタンをクリックします。

ホームコントローラー

これがデフォルトのページになります。

  • ステップ4 *-文字列を返す単一のパブリックメソッドを定義し、次のプログラムに示すようにそのメソッドIndexを呼び出します。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace FirstAppdemo.Controllers {
   public class HomeController {
      public string Index() {
         return "Hello, World! this message is from Home Controller...";
      }
   }
}
  • ステップ5 *-Webサイトのルートに移動すると、コントローラーの応答が表示されます。 現在のところ、indexlファイルを提供しています。

コントローラーの応答

Webサイトのルートに移動して、indexlを削除します。 indexl ファイルの代わりにコントローラーが応答するようにします。

ステップ6 *-次に、StartupクラスのConfigureメソッドに移動し、ミドルウェアの *UseMvcWithDefaultRoute を追加します。

UseMvc Default Route

  • ステップ7 *-Webサイトのルートでアプリケーションを更新します。

アプリケーションの更新

500エラーが発生します。 このエラーは、フレームワークが必要なASP.NET Core MVCサービスを見つけることができなかったことを示しています。

ASP.NET Core Framework自体は、非常に焦点を絞った責任を持つさまざまな小さなコンポーネントで構成されています。

たとえば、コントローラーを見つけてインスタンス化する必要があるコンポーネントがあります。

ASP.NET Core MVCが正しく機能するには、そのコンポーネントがサービスコレクションに含まれている必要があります。

  • ステップ8 *-NuGetパッケージとミドルウェアの追加に加えて、ConfigureServicesにAddMvcサービスを追加する必要があります。 Startupクラスの完全な実装を次に示します。
using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Hosting;
using Microsoft.AspNet.Http;

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Configuration;

namespace FirstAppDemo {
   public class Startup {
      public Startup() {
         var builder = new ConfigurationBuilder() .AddJsonFile("AppSettings.json");
         Configuration = builder.Build();
      }
      public IConfiguration Configuration { get; set; }

     //This method gets called by the runtime.
     //Use this method to add services to the container.
     //For more information on how to configure your application,
     //visit http://go.microsoft.com/fwlink/?LinkID=398940
      public void ConfigureServices(IServiceCollection services) {
         services.AddMvc();
      }

     //This method gets called by the runtime.
     //Use this method to configure the HTTP request pipeline.
      public void Configure(IApplicationBuilder app) {
         app.UseIISPlatformHandler();

         app.UseDeveloperExceptionPage();
         app.UseRuntimeInfoPage();

         app.UseFileServer();
         app.UseMvcWithDefaultRoute();

         app.Run(async (context) => {
            var msg = Configuration["message"];
            await context.Response.WriteAsync(msg);
         });
      }

     //Entry point for the application.
      public static void Main(string[] args) => WebApplication.Run<Startup>(args);
   }
}

ステップ9 *- *Startup.cs ファイルを保存し、ブラウザーに移動して更新します。 これで、 home controller から応答を受け取ります。

Startup.Cs HomeController