2011-03-09 49 views
1

在我测试的MVC web应用程序中,我创建了自定义类,它从数据库中检索数据。我在MVC应用程序中创建了另一个名为Data的文件夹,并且已将该数据类放置在此文件夹中。当我想使用控制器这个类,并导入时:MVC web应用程序无法识别自定义类

using TestMvcApp.Data; 

我得到一个错误:

The type or namespace name 'Data' does not exist in the namespace 'TestMvcApp' 
(are you missing an assembly reference?) 

哪里是什么问题?为什么它找不到我的课程?我已经尝试了很多东西,比如将该类放在控制器文件夹中,但还没有帮助。我根据这篇文章创建了我的测试MVC应用程序Using MvcContrib Grid in ASP.NET MVC Project感谢您的提示和答案。

编辑:我的班的名字是“ProductDB”,我已经指定了它的命名空间。我将该类导入到项目中,而不是我创建的DATA文件夹,然后将该类放在那里,最后我将其名称空间名称更改为TestMvcApp.Data!该课程来自我的另一个项目。

回答

0

还必须与类的命名空间设置为TestMvcApp.Data

1

如果你的类被称为Data和命名空间被称为TestMvcApp.Data我怀疑有一个命名冲突。

+0

对不起,我忘记了,我班的名字是“ProductDB” – sanjuro 2011-03-09 13:48:19

2

您是在将该类放入“数据”文件夹之前还是之后创建类的?如果是之前,它是否仍然属于TestMvcApp命名空间,或者您是否将其名称空间更改为TestMvcApp.Data?如果不是,则需要更改该类所在的命名空间或更改using语句。

+0

嗨,thx回答,我将该类导入到项目中,比我创建DATA文件夹,然后我把那个类放在那里,最后我改变了它的名字空间名称到TestMvcApp.Data!该课程来自我的另一个项目。 – sanjuro 2011-03-09 13:52:55

+0

也许尝试发布类的一部分代码以及控制器,以便我们可以看到声明和使用语句。就像@Cpfohl所说,没有更多信息就很难给出很多指导。 – Zannjaminderson 2011-03-09 14:06:22

+0

我不知道为什么,但是当我手动创建数据文件夹ProductDB类时,一切正常,所以我只复制该类的代码,并解决问题。但我仍然想知道为什么它不认可导入类,很奇怪。 – sanjuro 2011-03-09 14:09:00

2

我不知道为什么,但在我的情况下,当我添加自定义类时,Visual Studio 2013没有将其标记为编译。相反,它被标记为“内容”。

我了解它,因为我编辑了.csproj,而我的类就像“Include”一样放置。我把它改成了“编译”,并且它真的奏效了!

您可以在属性窗口使用“生成操作”类的文件属性。

+1

同样适用于我(VS2012,这种情况只发生在以同样方式创建的许多cs文件中的一个) – Axeman 2014-06-03 15:25:52

相关问题