【C#】ASP.NET Core MVCのはじめかた

  • このエントリーをはてなブックマークに追加

最近、ASP.NET CoreのMVCフレームワークを使ったWEB開発をする機会がありました。

その時にハマったポイントを重点的にメモをこの記事で残しておこうと思います。

起動関係

localhost起動をhttps→httpへ

デフォルトではhttps://localhost:5001となる。

最新のChromeで起動させるとセキュリティ面の理由などでページが表示できない。

httpsからhttpへ設定を変更

・Properties/launchSettings.json

 

ホットリロードモードで起動

Razorという拡張機能を使って自動コンパイルをするように設定します。

まずはCLIでパッケージをインストール

 

・startup.cs(AddRazorRuntimeCompilationの設定が必要)

 

・起動コマンド

これでホットリロードモードで開発可能です。

 

Controllerについて

ControllerはControllersに自分でファイルを作れば作成できます。

・HogeController.csの例

namespaceのAppName.Controllers内にControllerを継承したクラスを作成します。

(#Cのクラス継承は「class AAA : BBB」)

このクラスの中に作った関数は全てルーティングをRailsのように特別行わなくてもルートとして登録されるらしい。

 

Viewについて

Viewファイルの作成

こちらのドキュメントを参考にしました。

https://docs.microsoft.com/ja-jp/aspnet/core/tutorials/first-mvc-app/adding-view?view=aspnetcore-3.1&tabs=visual-studio

ViewもControllerと同じで「Views」フォルダにControllerと同じ名前のフォルダを切って、その中に作成します。

拡張子は「cshtml」

例)

 

共通レイアウトは「Views/Shared/_Layout.cshtml」で設定されています。

共通レイアウトの中に「@RenderBody」という箇所があります。

公式ドキュメントによると

RenderBody は、作成したビュー固有のページがすべて表示されるプレースホルダーで、レイアウト ページにラップされます。

この部分に作成した各レイアウトが収まるようです。

 

ControllerからViewへ値の反映

「ViewData」を使って、Viewへ値を受け渡すことができます。

 

例)

・HogeController.cs

 

・Hoge/index.cshtml

IActionResult型でテンプレートビューを返すことが出来ます。

return にはView()関数を指定。

key:valueのシンプルな構造で値の受け渡しが可能。

しかも、名前は文字列であればいいのか、一応日本語も設定が出来ました。(いいのか?)

 

ViewDataをview側で使用する場合は「@」を付ける。

また、@{}内にC#の処理を展開することもできます。

この中でループで回して要素の動的作成が可能です。

 

Modelについて

ORM

いくつかあるようですが、Entity Framework CoreというORMを今回は使用します。

Entity Framework Coreはlinqを使用して操作できるORMです。

linqについて:https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/concepts/linq/

Entity Framework Core:https://docs.microsoft.com/ja-jp/ef/core/

 

パッケージのインストール

 

 

Modelを作成する

例としてNotebooksテーブルのModelクラスを作成します。

このクラスファイルを用意しておくと、後述するマイグレーションでテーブルを作成してくれます。

 

MySQLを使用する

デプロイ環境がWindows Serverではなく、Linux系でDBもMySQLを採用していたのでMySQLを使用する設定をおこないました。

デフォルトではMySQLをサポートしていないため、操作するためにCLIからパッケージをインストールします。

プロジェクトへの設定はこの記事が参考になります。

https://qiita.com/tatsuteb/items/abd7888788a7a5d08230

 

DBのマイグレーション

DBと、DBに追加するテーブルのModelクラスとDB接続用Contextの設定をしておきます。

 

マイグレーションコマンドで実行する。

 

実行すると、hoge/migrationsディレクトリ直下にマイグレーションファイルが追加されます。

Modelクラスを変更すると自動的に変更点を拾い上げてマイグレーションファイルを作成してくれます。

 

マイグレーションファイルに問題がなければマイグレーションを適用します。

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

コメントを残す

*