ASP.NET Core MVC メモ

プロジェクト・NuGet

・ASP.NET Core Webアプリ(Model-View-Controller)を作成

・ファイル/フォルダ削除

Controllers/HomeControllers.cs
Views/Home/
削除

・NuGet インストール

ツール>NuGetパッケージマネージャ>ソリューションのNuGetパッケージの管理>参照
Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.Sqlite(SqlServer)
Microsoft.EntityFrameworkCore.Tools
あるいはパッケージマネージャーコンソールから
PM>Install-Package Microsoft.EntityFrameworkCore
PM>Install-Package Microsoft.EntityFrameworkCore.Sqlite(SqlServer)
PM>Install-Package Microsoft.EntityFrameworkCore.Tools

DB First・スキャフォールディング

DB(テーブル、フィールド)まで準備しておく。とりあえずなので最低限の内容。

・SQLiteの場合

SQLiteのファイルを作成しbin\Debug\net6.0以下に移動しておく。

PM>Scaffold-dbcontext -Connection “Data Source=./bin/Debug/net6.0/dat.sqlite” -Provider Microsoft.EntityFrameworkCore.Sqlite -OutputDir Models

(更新の場合 -f)

SQL Serverの場合
PM>Scaffold-dbcontext -Connection “Server=localhost,49153\SQLEXPRESS;Database=TestDb;persist security info=True;user id=sa;password=passw0rd!;MultipleActiveResultSets=True” -Provider Microsoft.EntityFrameworkCore.SqlServer -tables “TestTable33” -OutputDir Models

・コントローラー、ビュー作成

ソリューションエクスプローラ右クリック>追加>新規スキャフォールディングアイテム>EntityFrameworkを使用したビューがあるMVCコントローラー

表示されたダイアログで、
モデルクラス、データコンテキストクラスは自動生成されたファイルを選択。
コントローラー名は自動で命名されるが、用途に応じて変更する。

・Programs.cs編集

の部分を必要に応じて書き換え。

を追加。

・xxxContext.cs編集

を削除。

を削除。

・DB更新

SQLiteメモ

Modelsの内容を変更し、
PM>Add-Migration xxx
PM>Update-Database

ここではxxxContextなど自動で変更されない。

・アクションメソッド

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

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

アクションメソッド

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

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

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

Razor

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

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

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

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

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