38

Wiley Publishing、Inc.が発行したScott Hanselmen、Phil Haack、RobConeryによるProfessionalASP.NET 3.5 MVCの第13章に従って、ASP.net 4WebフォームプロジェクトをAsp.netMVC4に変換しました(ISBN:978- 0-470-38461-9)。私もこのブログをフォローしました。これで、コントローラー、ビューなどを追加できます。すべての参照が適切に設定されています。ビルドエラーはありません。しかし、変換されたプロジェクトを起動すると、コンパイルエラーが発生しました。同じマシンにmvc3をインストールしています。私もそれへの参照を変更しました。それはまだ文句を言います。手伝ってくれる?ありがとう。

Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. 

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

Source Error:

Line 109:            <namespaces>
Line 110:                <add namespace="System.Web.Helpers"/>
Line 111:                <add namespace="System.Web.Mvc"/>
Line 112:                <add namespace="System.Web.Mvc.Ajax"/>
Line 113:                <add namespace="System.Web.Mvc.Html"/> 

Source File: c:\Users\Jon\Documents\Visual Studio 2012\Projects\CMT\Apps\Branches\3.0\Web.config    Line: 111 
4

8 に答える 8

89

私は同じ問題を抱えていて、それを次のように解決しました:

1.ソリューションを右クリックしてクリックします'Clean Solution'

2.'References'ソリューションエクスプローラーでフォルダーをクリックし、問題の参照(この場合はSystem.Web.Mvcのようです)を選択してから、右クリックしてクリックします'Properties'

3.プロパティウィンドウで、'Copy Local'プロパティがに設定されていることを確認します'True'

これは私のために働いた。それが他の誰かのために働くことを願っています

役立つメモ:@Vladのコメントで述べたように:

すでにTrueに設定されている場合:

  1. Falseに設定
  2. もう一度Trueに設定してください
  3. 再構築
于 2014-10-15T20:28:17.430 に答える
12

この問題は、Webアプリケーションをサーバーにデプロイするときに発生する可能性があるため、MVC3が既にインストールされているかどうかを確認する必要があります。

フォルダC:\Program Files\Microsoft ASP.NET\ASP.NET MVC 3が存在するかどうかを確認してください。

存在しない場合は、http://www.microsoft.com/en-us/download/details.aspx?id=1491からインストールする必要があります。


インストールしない場合は、すべてのDLLをbinフォルダーにローカルに追加し、それらへの参照を追加できます。サーバーでホストしている場合は、ASP.NETWebページまたはMVC3を展開しないでください。

于 2013-10-10T17:40:37.163 に答える
8

web.config内のランタイムタグをチェックし、次のようなものが宣言されていることを確認します。

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
      </dependentAssembly>
.....
</runtime>
于 2013-02-12T04:18:16.807 に答える
7

Microsoft.AspNet.Mvcnugetパッケージを追加します。

于 2016-09-12T15:22:38.087 に答える
5

Visual Studioを閉じて、すべてのbinディレクトリを削除し、これらすべての回答を試しました。

再度起動した後、MVC参照に黄色の感嘆符が付いているように見えたので、それを削除して再度追加しました。

これで、ローカルにコピーしなくても機能します。

于 2015-03-16T19:41:21.547 に答える
5

以前の答えはどれも私にはうまくいきませんでした。

私のプロジェクトが.NETFrameworkからの参照を使用して別のプロジェクトを参照していることに気付きましたSystem.Web.Mvc

そのアセンブリを削除し、「Microsoft.AspNet.Mvc」NuGetパッケージを追加したところ、問題が修正されました。

于 2015-11-05T14:08:57.507 に答える
4

プロジェクトにアセンブリSystem.Web.Mvcへの参照を含める必要があります。

C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework\v4.0にSystem.Web.Mvcがない可能性があります

したがって、それを追加してから、プロジェクトへの参照として含める必要があります

于 2013-11-29T17:42:37.200 に答える
1

この問題が発生しましたが、IISのすべてのアプリケーションは、以前は機能していたときに壊れていました。マークされたソリューションはどれも私を助けませんでした。問題は、web.configの余分なコピーが私のルートディレクトリに導入されていたことでした。そのファイルを削除して問題を解決しました。

于 2014-02-17T15:39:17.317 に答える