ASP.NET Coreチュートリアル(Razorページアプリの作成)

はじめに

以下のサイトを参考にチュートリアルを行いました。 docs.microsoft.com

環境

アプリケーションを作成

1.ディレクトリを作成

ASP.NET Core Web のテンプレートを「RazorPagesMovie」ディレクトリへ作成

# ターミナル

dotnet new webapp -o RazorPagesMovie

2.開発証明書を発行する

# ターミナル

dotnet dev-certs https --trust

すでに証明書発行済の場合は 「A valid HTTPS certificate is already present.」とターミナルに表示されます。

3.モデルを追加する

  • Modelsフォルダを作成し、その配下にMovieクラスを作成する
# ターミナル

mkdir Models
touch Models/Movie.cs
  • Movie.csを修正する
# Model/Movie.cs

using System.ComponentModel.DataAnnotations;

namespace RazorPagesMovie.Models
{
    public class Movie
    {
        public int ID { get; set; }
        public string Title { get; set; } = string.Empty;

        [DataType(DataType.Date)]
        public DateTime ReleaseDate { get; set; }
        public string Genre { get; set; } = string.Empty;
        public decimal Price { get; set; }
    }
}

4. NuGet パッケージと EF ツールを追加する

NuGetパッケージ・・・モジュールをDLやインストールができるパッケージマネージャ
EF ツール・・・Entity Framework Coreの拡張コマンドである「dotnet ef」を使えるようにする

  • 下記のコマンドを実行して、ツールやパッケージをインストール
# ターミナル

dotnet tool uninstall -g dotnet-aspnet-codegenerator
dotnet tool install -g dotnet-aspnet-codegenerator
dotnet tool uninstall -g dotnet-ef
dotnet tool install --global dotnet-ef
dotnet add package Microsoft.EntityFrameworkCore.Design
dotnet add package Microsoft.EntityFrameworkCore.SQLite
dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
  • 下記のコマンドを実行して、上記ツールのパスを通す
# ターミナル

cat << \EOF >> ~/.zprofile
# .NET Core SDK tools
export PATH="$PATH:/Users/ユーザー名/.dotnet/tools"
EOF

5.Movieに対してCRUD用のページを追加

# ターミナル

dotnet-aspnet-codegenerator razorpage -m Movie -dc RazorPagesMovieContext -udl -outDir Pages/Movies --referenceScriptLibraries -sqlite

6.ビルド

command + shift + b

7.ローカルへアクセスして確認

F5を押して、「https://localhost:port/movies」にアクセスし エラーがないことを確認します。

  • 作成 f:id:Toshiki2968:20220325205009g:plain

  • 編集 f:id:Toshiki2968:20220325205311g:plain

  • 詳細 f:id:Toshiki2968:20220325205410p:plain

  • 削除 f:id:Toshiki2968:20220325205427g:plain

今回発生したエラー

  • エラー内容
    「the type or namespace name 'razorpagesmoviecontext' could not be found」
  • 解決策
    エラーが発生したクラスの上部に以下を追加し解決しました。
using RazorPagesMovie.Data;