CS0234:System.Web命名空间中不存在Mvc

时间:2013-02-12 01:52:32

标签: asp.net-mvc asp.net-mvc-4

根据专业ASP.NET 3.5 MVC的第13章,由Scott Hanselmen,Phil Haack和Rob Conery(由Wiley Publishing,Inc。出版)将ASP.net 4 webform项目转换为Asp.net MVC4(ISBN) :978-0-470-38461-9)。我也遵循了这个blog。现在我可以添加控制器,视图等。所有引用都设置正确。没有构建错误。但是在启动转换后的项目时,我遇到了编译错误。我在同一台机器上安装了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 

8 个答案:

答案 0 :(得分:83)

我遇到了同样的问题,我用以下方法解决了这个问题:

1.右键单击解决方案,然后单击'Clean Solution'

2.单击解决方案资源管理器中的'References'文件夹并选择问题参考(在您的情况下看起来似乎是System.Web.Mvc)然后右键单击并单击'Properties'

3.在属性窗口中,确保'Copy Local'属性设置为'True'

这对我有用。希望它适用于其他人

有用的注意事项:正如@Vlad在评论中提到的那样:

如果已设置为True:

  1. 设置为假
  2. 再次设置为
  3. 重建

答案 1 :(得分:10)

将Web应用程序部署到服务器时可能会发生此问题,因此您必须检查是否已安装MVC3。

检查文件夹C:\Program Files\Microsoft ASP.NET\ASP.NET MVC 3是否存在。

如果不存在,则需要从http://www.microsoft.com/en-us/download/details.aspx?id=1491

安装

如果您不想安装,可以在bin文件夹中本地添加所有DLL并添加对它们的引用,如果您在服务器上托管,则不能部署ASP.NET网页或MVC3。

答案 2 :(得分: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>

答案 3 :(得分:5)

我尝试了所有这些答案,甚至关闭了Visual Studio并删除了所有bin目录。

再次启动后,MVC参考似乎上面有一个黄色感叹号,所以我将其删除并再次添加。

现在它可以工作,没有本地复制。

答案 4 :(得分:5)

以前的答案都不适合我。

我注意到我的项目使用.NET Framework中的System.Web.Mvc引用引用了另一个项目。

我刚刚删除了该程序集并添加了“Microsoft.AspNet.Mvc”NuGet包,这解决了我的问题。

答案 5 :(得分:4)

添加Microsoft.AspNet.Mvc nuget包。

答案 6 :(得分:2)

您需要在项目中包含对程序集System.Web.Mvc的引用。

您可能没有C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.0

中的System.Web.Mvc

所以你需要添加它然后把它作为你的projrect

的参考

答案 7 :(得分:1)

我遇到了这个问题,但是IIS中的所有应用程序在以前工作时都被破坏了。所有标记的解决方案都没有帮助我。问题最终是web.config的额外副本已被引入我的根目录。我删除了该文件并解决了问题。