だから、これはしばらくの間私を悩ませてきましたが、時々私のVisual Studio 2013 ASP.NET MVC4プロジェクトでは、未使用のViewModelクラスを削除し、次のようなエラーが発生します削除したばかりのMostRecentMemberListing.cs」):
エラー9型または名前空間名 'MostRecentMemberListing'は名前空間 'MembershipCenter.ViewModels'に存在しません(アセンブリ参照がありませんか?)c:\ Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\temp\3e932790\42b7ff67\App_Web_cvlbfbci.1.cs 29 MembershipCenter
VSの[エラーリスト]パネルでエラーをダブルクリックすると、C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\temp\3e932790\42b7ff67
というパスにあるファイルが開きます。これは、クラス名が_Page_Views_Home_MostRecentMember_cshtml
のシステム生成ビューファイル(?)です。
Temporary ASP.NET Files
の下のtemp
フォルダーへのパスまで、その奇妙なファイル自体とそのフォルダー、およびITSフォルダーを削除しようとしました。しかし、プロジェクトを再コンパイルするたびに、それらすべてのフォルダーとファイルが直接再作成され、同じコンパイルエラーが発生します。
プロジェクトファイルの<MvcBuildViews>true</MvcBuildViews>
を使用して、コンパイル中にビューを作成しています。この設定をオフにすると、ビルドと実行は問題なく実行できますが、true
に戻すと、ビルドエラーが返されます。
誰もこのエラーに遭遇したことがありますか? IISに関連していますか? IIS Expressではなく、ローカルIISを実行しています。
これは、ローカルまたはその他のIISとは関係ありません。あなたが見ているその長い、奇妙なファイル名は、コンパイラがそれをコンパイルするときにビューに与える名前です。説明したことはすべて、ビューの1つにコンパイルエラーがあることを示しています。 HTMLタグの不一致、不適切なモデルプロパティ呼び出しなどが考えられます。
エラーメッセージを見ると、/Views/Home/MostRecentMember.cshtml
。さらに、実際には、モデル宣言のネームスペースが欠落しているか、送信しようとしているモデルの間違ったネームスペースが宣言されているようです。
奇妙な名前のファイルを削除しても、再構築するときは何もしません。おそらく別の名前で戻ってきます。
今日もこれがありました。VisualStudioには、viewsフォルダー内のすべてのcshtmlファイルをコンパイルしようとするバグがあるはずです。プロジェクトの一部ではない場合でも。ソリューションエクスプローラーで[すべてのファイルを表示]をクリックし、不正なファイルを見つけて削除することをお勧めします。
ほかの人のため。等号を忘れることもあります<%ThankyouMessage%>
の代わりに<%=ThankyouMessage%>
このエラーは、ビューが見つからないモデルを使用していることを意味します。これは通常、ビューを更新せずにモデルをリファクタリング/削除するときに発生します!
影響を受けるビューのモデルへの参照を修正すると、この問題が解決するはずです。
それ以外の場合、ASP.Net一時ディレクトリをクリーンアップしてみてください:C:\ Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files
Webアプリケーションの名前空間を変更した後、同じエラーに直面しました。また、ソリューションとWebプロジェクトの名前も変更しました。たくさんのトリックとヒントを経て、最終的にこのソリューションはうまくいきました。
最後に、ソリューションのViewsフォルダーの下にリストされているweb.configを検索しましたが、そこに古い名前空間の参照が見つかりました。これをNewNamespaceに変更し、アプリケーションを実行しました。今回はうまくいきました。
私は同じ問題を抱えており、問題はC#の名前空間に依存していることがわかりました。ビューのファイル.cshtmlの名前空間は上位「@model IEnumerable」であり、クラスの名前空間はCamel形式「Abc.Def.Class」です。
.cshtmlの名前空間をCamel形式に変更して実行します。