ASP.NET Core MVC メモ

・アクションメソッド

アクションメソッドとは、コントローラーの中で定義されたpublicのメソッドのこと。アクションメソッドの戻値はIActionResultを実装したオブジェクト。

URLの基本は/コントローラー名/アクションメソッド名となる。

・アクションメソッドの戻り値

・ルーティング

Startup.cs > Configure > UseEndpointsメソッドにて定義

・コントローラからビューの呼び出し

ヘッダーなどは/Views/Shared/_Layout.cshtmlにて定義され、コンテンツは@RenderBodyの部分で読み込まれる

・Razor

インライン
@をつける、式の値を出力する。

コードブロック
@{}をつける、出力しない。

コードブロック内で出力する場合、
HTMLタグで囲む、または<text>タグで囲む、または@:をつける。

コメント
@* *@
@{ }の中では、// や /* */が使える。

@のエスケープ
@をつける。

・モデルクラス

NuGetにて、
EntityFrameworkCore.Sqlite
EntityFrameworkCore.Tools
をインストール

Models/テーブル名.cs
としてクラスを作成する。

クラス名とテーブル名を同じにする。
プロパティとテーブル列を同じにする。
主キーはIdとする。

同じくModelsにxxxContext.csクラスを作成する。

appsettings.jsonにDB接続文字列を追加。

または

ここのDefaultConnectionの文字は自由。上記の指定だとプロジェクトフォルダと同じ階層にSQLiteファイルを設置する。

SQLiteはサーバーエクスプローラ非対応だが、他のDBなら接続文字列はサーバーエクスプローラのプロパティから確認できる。

SQLiteに切り替える。
Startup.cs > ConfigureServices()
の中に以下を追加。

(Startup.csでもusing Microsoft.EntityFrameworkCoreが必要になる)

・マイグレーション

パッケージマネージャコンソール
(ツール > NuGetパッケージマネージャ > パッケージマネージャコンソール)

①PM> Add-Migration Initial
ここで、モデルクラスからDBに必要なマイグレーションファイルが作成される。Migrations/日付_Initial.csが作成される。

②PM> Update-Database
ここで、マイグレーションファイルを実行する。

・テストしてる。

コントローラを以下のようにする。

ビューを作成(Views/Hello/List.cshtml)