添加控制器模型类未显示

时间:2012-03-18 12:59:40

标签: asp.net-mvc visual-studio-2010 entity-framework-4 scaffolding

我设法创建了Model First DBContext模型(在它是普通的ObjectContext派生模型之前)。

现在我的VS没有在"添加控制器"中的模型选择列表中显示我的任何类。或多或少外部的一切都显示在这里 - 除了我自己的stuf。是的 - 我编译了代码,代码编译没有错误,并多次重启VS.不知道到底发生了什么。

在数据上下文类选择器中相同。

Manuelly设置课程不起作用。添加将始终抱怨我必须从列表中选择。

VS获取填充列表的数据在哪里?

框架:MVC4,VS2010,EF4.3.1

14 个答案:

答案 0 :(得分:12)

有同样的问题。发现只是构建项目并没有解决缺少模型类的问题。然而,重建项目,立即解决了。

答案 1 :(得分:3)

它起作用的原因是,通过将它放在另一个项目中,你“构建”它然后它出现了。如果您已经构建了第一个项目,然后尝试添加一个控制器bam,它将会存在。

答案 2 :(得分:3)

“添加控制器”未显示脚手架的模型类

使用的环境:使用C#Visual Studio 2013的ASP.NET MVC5

解决方案1:如果解决方案名称是SAME作为项目名称,则只需清洁解决方案,构建解决方案。它会起作用。

解决方案2:如果项目名称中的解决方案名称不同,请检查以下步骤:

(i)检查您的模型类名称空间为

namespace SolutionName.ProjectName.Models
{ ...}

假设解决方案名称为“WGT”且项目名称为“MS”,那么模型类称用户应为

namespace WGT.MS.Models
{ public class User{...}}

(ii)在此之后,明确解决方案。

(iii)构建解决方案

一定会奏效。花了很多时间后找到这个解决方案。这是一个实用且实施的解决方案。

答案 3 :(得分:2)

有同样的问题。我修好了。

  • 在另一个类库项目中分离EF。
  • 在主要网络项目中添加引用。
  • 在Web项目配置文件中添加连接字符串。

答案 4 :(得分:1)

最后我设法让脚手架再次工作。 我将model.edmx重构为主项目。模板化的东西现在将在这个新的模型项目中生成模型类。 将模型项目添加到主项目后,类再次显示在控制器模型选择框中。 奇怪的是它似乎在没有分离的全新设置解决方案中工作......

答案 5 :(得分:1)

可能相关:Add View Model class dropdown not showing my class

我在添加控制器时正在寻找解决方案,但是在达到这一点之前就已经达到了上述帖子。删除AssemblyInfo.cs并设置项目的属性对我来说(对于VS2010)。

答案 6 :(得分:1)

首先在一个单独的项目中与EF模型存在同样的问题。

Rebuild all什么也没做,只是重新加载到Visual Studio的新实例中修复它。

答案 7 :(得分:1)

我遇到了同样的问题,检查包(asp.net mvc,& EF) 兼容性,升级所有nuget包。清理和重建项目。这对我有用。

http://forums.asp.net/t/1791616.aspx?Can+t+create+new+controller+No+model+classes+are+available+

答案 8 :(得分:0)

创建一个新的MVC互联网站点。添加现有(您的模型类) - 验证它是否有效,然后开始区分这两个项目。

答案 9 :(得分:0)

我刚刚在一个有效的项目中遇到过这个问题。 EF或MVC没有更新,它刚刚开始抛出"没有模型类......"信息。我备份了我的项目,从我的HD中删除了它,并且在这种情况下从源代码控制获得了最新版本的SVN。我重建了这个项目,现在它再次起作用,就像魔法一样。

VS 2012 EF 5.0 .NET 4.5 MVC 4.0

答案 10 :(得分:0)

建筑/重建对我不起作用。我不得不关闭并重新打开解决方案,然后课程终于出现了。

答案 11 :(得分:0)

我在一个特定模型上也遇到了同样的问题。我将.Net Core 2.x和EF Core一起使用。 原来是因为它继承了一个类,该类又继承了Microsoft.AspNetCore.Identity.IdentityUser。 EF Core不允许我使用该模型。我从基类中删除了IdentityUser的继承关系,该模型出现在EF new Controller的下拉列表中。

答案 12 :(得分:0)

当您有一个引用另一个项目的项目时,可能会发生此问题。 这称为传递项目参考,并以多种方式体现。 在某些情况下,您需要直接引用项目而不是传递解决该问题。

例如:项目A,项目B,项目C 项目B引用了C,因此在repos / b / bin / debug中,您拥有b.dll和c.dll 项目A都需要,所以您将引用指向b / bin / debug文件夹中的B.dll和C.dll-您看不到c.dll中的任何模型,但可以看到b.dll模型

修复/解决方法:直接参考repos / b / bin / debug / b.dll和repos / c / bin / debug / c.dll

答案 13 :(得分:0)

我遇到了类似的问题,尽管确保我包括了

using ProjectName.Models; 

在我的控制器文件的顶部。构建/重建对我不起作用。也没有关闭Visual Studio的所有实例,然后重新打开项目。

我认为问题可能是我们正在使用TFS(Microsoft的Team Foundation Server)。我遇到了问题,因为在将控制器(文件)移动到controllers文件夹之前,我先创建了模型,然后在views文件夹中创建了控制器。

我的解决方案是创建我的模型,在其他地方复制控制器代码,删除控制器,重建/构建解决方案。然后,我创建了一个新的控制器,并复制了正确的代码,嘿,很高兴,它识别出模型类。