web-dev-qa-db-ja.com

index.g.cshtmlはどこにありますか

このチュートリアルを実行しようとしています( ASP.Net Core Razor Pages )が、ソリューションをビルドするときに(多くの場合)ファイル 'Indexに名前空間がないことを示すCS0234エラーが表示されます。 g.cshtml.cd '........しかし、このファイルはどこにありますか? 1.ビルド/クリーン/リビルドのすべてのソリューションオプションを試しました。 2. Visual Studioを再起動しました。3。DEBUGファイルを削除し、VSとFINALYを再起動しました。4. PCを再起動しました。動作していると思われる唯一のソリューションは、ソリューション/プロジェクト全体を削除して、もう一度開始することです。

確かにこれに対する修正が必要ですか?お手伝いできますか?

11
ImConfused

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に追加します。これにより、そのクラスがすべてのビューで使用可能になります。

7
Marco

プロジェクトを右クリックして、エクスプローラーでフォルダーを開きます。次に「Index.g.cshtml.cs」を検索し、ファイル検索結果を削除します

Index.cshtmlが正しいモデルを参照していることを確認してください。

Visual Studio 2019 16.2.2で同じエラーが発生しました。私にとっては、一部のモデルの名前を変更しました。モデルを使用している実際のビューでエラーを拾うのではなく、エラーはpage.cshtmlではなくpage.g.cshtmlに表示されていました。

だから、私の解決策はかなり簡単でした。エラーがpage.g.cshtmlにあった場合は、gを無視し、page.cshtmlのビューに移動して、モデル名を正しい名前に更新し、再構築してエラーが消えます。

2
96marrs

最近、同じ問題に直面しました。

次の簡単な方法を試してください

  1. エラーをコピーしてメモ帳に貼り付けます。そこで、エラーファイルの元の根本原因のパスを確認できます。例:'YourProjectFolder'\obj\Debug\netcoreapp2.2\Razor\Views\'View Name'\index.g.cshtml.cs

  2. エラーが引き続き発生する場合は、index.cshtmlファイル内の正しいネームスペースを参照してファイルを見つけます。それ以外の場合は、ファイルを削除して再構築します。

  3. また、重複ファイルがあり、プロジェクトから除外されていることを確認してください。存在する場合は、ファイルも削除します

  4. 次に、プロジェクトをきれいにして再構築します。 (クリーニング、VSの終了、再構築が必要になる場合があります)

0
Magesh0051

実際、この質問に対する本当の答えはありません。ファイルはDEBUGフォルダー内に作成されていることがわかります。ただし、Debugフォルダーを削除した後、エラーが引き続き発生していました。それはVSのバグでなければなりませんか?

0
ImConfused

すべてのプロジェクトのすべてのobjフォルダーをクリーンアップして、再度ビルドしてみてください。これは、コンパイラによって生成されるコードの一部であり、ビュー自体と同期されていない場合があります。すべてをクリーンアップするリビルドも機能しません。手動で行います。お役に立てれば

0
Zinov

以下の解決策を試すことができます

  1. C:\ Temp\msbuild 2に移動します。プロジェクト名のフォルダがあり、そのフォルダ内にこれらのファイルがあります。下の画像
  2. それらのファイルを削除して、解決に役立つソリューションを再構築してください。
0
Apoorva Raju