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

C# 为什么ASP.NET拒绝识别相关项目的命名空间?,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我有一个ASP.NETMVC2项目,它引用了我的解决方案中的几个其他项目。 在C#代码中,所有引用都可以正常工作,但在ASP.NET代码中,出现了一些问题—其中一个引用的名称空间无法识别。我将以下内容放入我的Web.config文件: <pages> <namespaces> <add namespace="System.Web.Mvc" /> <add namespace="System.Web.Mvc.Ajax" />

我有一个ASP.NETMVC2项目,它引用了我的解决方案中的几个其他项目。 在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>
我看不出
Project1
Project2
之间有什么本质上的区别,但是一个名称空间被认为是有效的,而另一个名称空间则不是。我还明确地添加了对
System.Data.Entity
的引用;这似乎没有帮助


有什么想法吗?

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


但是,它不会添加对项目的引用-您可能需要添加对其他项目之一的引用。(项目2)

您是否添加了对项目2的引用?

可以在以下位置找到可能出错的事项列表:

小结

  • 您可能拼错了要使用的类型或命名空间的名称
  • 正确的资本化
  • 如果错误是对命名空间的引用,则项目中可能未引用命名空间所在的程序集
  • 如果错误是对类型的引用,则可能没有正确的using指令,或者可能没有完全限定类型的名称

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

我确实有一个对Project2的引用,这可以从我可以基于Project2中的对象和引用Project2编译良好的c#代码创建强类型视图这一事实得到证明。但在我将这些引用添加到web.config之前,项目正在运行,当我打开该视图时崩溃,因为它找不到名称空间。请尝试将其更改为(名称空间,程序集)?我确实参考过Project2-我可以基于Project2中的对象和引用Project2编译的c代码创建强类型视图,这一事实证明了这一点。但在我将这些引用添加到web.config之前,项目正在运行,当我打开该视图时崩溃,因为它找不到名称空间。也许有一个父名称空间以您的解决方案命名,即MySolution.Project2?我不太明白。。。这样的背景在哪里?如果存在父命名空间,为什么代码可以用于C而不能用于ASP?请在C代码工作时添加它fine@Nicholas-我不明白-请您澄清一下好吗?您发布了“我有一个ASP.NET MVC 2项目,它引用了我的解决方案中的其他几个项目。”。在C#代码中,所有引用都可以正常工作,但在ASP.NET代码中会出现问题'
CS0246: The type or namespace name 'Project2' could not be found (are you missing a using directive or an assembly reference?)