web-dev-qa-db-ja.com

「Ajax」はネームスペース「System.Web.Mvc」に存在しません

私はASP.NET MVC 5の初心者であり、いくつかのことを理解するために小さなプロジェクトを構築したかったのです。ブラウザでプロジェクトを開くと、次のエラーが表示されました。

Compiler Error Message: CS0234: The type or namespace name 'Ajax' does not exist in the namespace 'System.Web.Mvc' (are you missing an Assembly reference?)

Source Error:
Line 22:     using System.Web.WebPages; 
Line 23:     using System.Web.Mvc;      
Line 24:     using System.Web.Mvc.Ajax;  
Line 25:     using System.Web.Mvc.Html;  
Line 26:     using System.Web.Routing;

いくつかのグーグルで iが判明 「ローカルのコピー」をtrueに変更する必要がありましたが、プロジェクトで既にtrueに設定されていることがわかりました。クリーンおよびリビルド後でも、このエラーは続きます。

だから誰がこのエラーを引き起こす可能性があるのか​​考えていますか?

35
Mike van L

System.Webの古いバージョンを参照していると思います。 vsでプロジェクトを右クリックし、[NuGetパッケージの管理]を選択して、Asp.Net MVCを検索し、[インストール]をクリックします。これにより、適切なSystem.WebとAjaxがインストールされます。ダウンロードされた他の6つのバイナリは、不要な場合は削除できます。

88
Ross Bush

MVC 5.2.3を使用して、同じ問題に遭遇しました。それは青から外れていました(このエラーは、アプリが以前はスムーズにコンパイルおよび実行されていたため、変更を加えずにどこからでも発生しました)

修正:

  • ソリューションを右クリックし、「ソリューションのNuGetパッケージの管理」を選択します
  • アンインストールボタンを選択して、ASP.NET MVCをアンインストールします
  • ASP.NET MVCを使用するProjectの選択を解除します-Okをクリックします
  • ASP.net MVCをインストールするには、NuGetウィンドウの[オンライン]タブでそれを見つけ、以前に選択解除されたプロジェクトにインストールします。
  • これで問題が解決するはずです。楽しい!
16
StackticMain

ランニング Install-Package Microsoft.AspNet.Mvc NuGetパッケージマネージャーコンソールで、私のためにトリックを行いました。

4

System.Web.MVC CopyLocalをTrueに設定してください

1
Pavel Nazarov

Navigate to References and right click on the system.web.mvc

プロパティを表示し、ローカルのコピーをFalseではなくTrueに変更します。

enter image description here

これは、パッケージマネージャーコンソールでパッケージの更新コマンドを実行することに加えて、私にとってはトリックでした。

1
Usman Younas

管理者モードでVisual Studioを再度開きます。

0
Zin Min

NuGet Package ManagerコンソールからMVCを更新し、問題を解決しました

0
ali shalash