このチュートリアルを実行しようとしています( ASP.Net Core Razor Pages )が、ソリューションをビルドするときに(多くの場合)ファイル 'Indexに名前空間がないことを示すCS0234エラーが表示されます。 g.cshtml.cd '........しかし、このファイルはどこにありますか? 1.ビルド/クリーン/リビルドのすべてのソリューションオプションを試しました。 2. Visual Studioを再起動しました。3。DEBUGファイルを削除し、VSとFINALYを再起動しました。4. PCを再起動しました。動作していると思われる唯一のソリューションは、ソリューション/プロジェクト全体を削除して、もう一度開始することです。
確かにこれに対する修正が必要ですか?お手伝いできますか?
Usingディレクティブまたは名前空間がxxx.g.cshtml.cs
にないというエラーが表示された場合、通常、ビューに直接ディレクティブがある(.cshtml
または.vbhtml
)ことを意味し、コンパイラーは解決できません。
私の場合、私は部分的なビューで次のステートメントを持っていました:
@inject UserManager<AppUser> UserManager
その後、AppUserクラスをWebアプリケーションNamespace.Web.AppUser
からNamespace.Entities.AppUser
にリファクタリングすると、そのエラーが発生していました。
これを解決するにはさまざまな方法があります。最も簡単な方法は、完全修飾型名前空間を使用することです。
@inject UserManager<Namespace.Entities.AppUser> UserManager
また、他のプロジェクトにある場合は、他のプロジェクトへの参照を追加することを忘れないでください。または:usingステートメントを追加します。
@using Namespace.Entities;
または:上記のusingステートメントを~\Views\_ViewStart.cshtml
に追加します。これにより、そのクラスがすべてのビューで使用可能になります。
プロジェクトを右クリックして、エクスプローラーでフォルダーを開きます。次に「Index.g.cshtml.cs」を検索し、ファイル検索結果を削除します
Index.cshtmlが正しいモデルを参照していることを確認してください。
Visual Studio 2019 16.2.2で同じエラーが発生しました。私にとっては、一部のモデルの名前を変更しました。モデルを使用している実際のビューでエラーを拾うのではなく、エラーはpage.cshtmlではなくpage.g.cshtmlに表示されていました。
だから、私の解決策はかなり簡単でした。エラーがpage.g.cshtmlにあった場合は、gを無視し、page.cshtmlのビューに移動して、モデル名を正しい名前に更新し、再構築してエラーが消えます。
最近、同じ問題に直面しました。
次の簡単な方法を試してください
エラーをコピーしてメモ帳に貼り付けます。そこで、エラーファイルの元の根本原因のパスを確認できます。例:'YourProjectFolder'\obj\Debug\netcoreapp2.2\Razor\Views\'View Name'\index.g.cshtml.cs
エラーが引き続き発生する場合は、index.cshtmlファイル内の正しいネームスペースを参照してファイルを見つけます。それ以外の場合は、ファイルを削除して再構築します。
また、重複ファイルがあり、プロジェクトから除外されていることを確認してください。存在する場合は、ファイルも削除します
次に、プロジェクトをきれいにして再構築します。 (クリーニング、VSの終了、再構築が必要になる場合があります)
実際、この質問に対する本当の答えはありません。ファイルはDEBUGフォルダー内に作成されていることがわかります。ただし、Debugフォルダーを削除した後、エラーが引き続き発生していました。それはVSのバグでなければなりませんか?
すべてのプロジェクトのすべてのobjフォルダーをクリーンアップして、再度ビルドしてみてください。これは、コンパイラによって生成されるコードの一部であり、ビュー自体と同期されていない場合があります。すべてをクリーンアップするリビルドも機能しません。手動で行います。お役に立てれば