概要
ASP .Net CoreでWebサービスを作る手順や作ってる際にハマったこととその解決策を
備忘録として書いています。
今回もタイトルの通り、とあるスキャフォールディングアイテムが表示されず困った話と
その解決策。
環境
Windows 10
Visual Studio 2019
ASP .Net Core 2.2
現象
プロジェクトテンプレート「ASP .NET Core Webアプリケーション」の
Webアプリケーション(モデル ビュー コントローラー)で作成したプロジェクトで
発生しました。
ソリューションエクスプローラを表示し、プロジェクトツリー内のControllersフォルダを
右クリックし、メニューから追加→新規スキャフォールディングアイテムを選択します。
以下のような画面が表示されるのですが・・・
そう、「Entity Framework を使用したビューがある MVC コントローラー」の項目が
見当たらないんです。
対処方法
Visual Studio本体なのか、Microsoft.VisualStudio.Web.CodeGeneration.Designのバグなのか
ちょっとよくわかりませんが、どうやら以前VS2017でも発生していたみたい。
https://stackoverflow.com/questions/55082446/vs2017-not-showing-mvc-controller-with-view-using-entity-framework
プロジェクトにPagesフォルダがあると、
なぜか「Entity Framework を使用したビューがある MVC コントローラー」が
表示されないとのこと。
確かに自分のプロジェクトにもPagesフォルダがあり、
このフォルダを削除したらアイテムが表示されました。
スキャフォールディングアイテムの、
「Entity Frameworkを使用するRazoreページ(CRUD)」を追加すると、
Pagesフォルダが追加されるんですよね。
自分のプロジェクトにPagesフォルダがあったのは、
間違って「Entity Frameworkを使用するRazoreページ(CRUD)」を追加したためでした。
何か地味にハマる問題でした・・・。