为什么ASP.NET拒绝识别相关项目的命名空间?

时间:2011-06-17 08:28:33

标签: c# asp.net asp.net-mvc

我有一个ASP.NET MVC 2项目,它在我的解决方案中引用了其他几个项目。 在C#代码中,所有引用都可以正常工作,但在ASP.NET代码中出现问题 - 其中一个引用的命名空间无法识别。我输入了我的Web.config文件:

<pages>
  <namespaces>
    <add namespace="System.Web.Mvc" />
    <add namespace="System.Web.Mvc.Ajax" />
    <add namespace="System.Web.Mvc.Html" />
    <add namespace="System.Web.Routing" />
    <add namespace="Project1"/>
    <add namespace="Project2"/>
  </namespaces>
</pages>

一旦我打开项目,我就会看到一个崩溃屏幕,上面显示消息:

CS0246: The type or namespace name 'Project2' could not be found (are you missing a using directive or an assembly reference?)

我在Project1Project2之间看不到任何质量上的差异,但是一个人的命名空间被接受为有效,而另一个则没有。我已明确添加了对System.Data.Entity的引用;这似乎没有帮助。

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

可以在http://support.microsoft.com/kb/304656

上找到可能出错的事项列表

简短摘要

  • 您可能拼错了您尝试使用的类型或命名空间的名称。
  • 正确的大写字母
  • 如果错误是对命名空间的引用,则可能没有项目中引用命名空间的程序集。
  • 如果错误是对类型的引用,那么您可能没有正确的using指令,或者您可能没有完全限定类型的名称。

您还可以检查根命名空间。

答案 1 :(得分:0)

该配置指定项目的命名空间应包含在所有页面中(相当于在所有页面中放置using语句)。

但它不会添加对项目的引用 - 您可能需要添加对其他项目的引用。 (Project2中)

答案 2 :(得分:0)

您是否添加了对Project2的引用?