无法获取模型的反射类型

问题描述 投票:0回答:10

第一步:右键生成

第2步:设置

第 3 步:错误消息

第 4 步:我的模型

如何解决这个问题?我无法生成创建表单

c# asp.net-core-mvc visual-studio-2017
10个回答
3
投票

到目前为止,即使您尝试添加现有控制器和现有操作的另一个视图,例如使用现有视图模型 -

ManageController.AddPhoneNumber
-
AddPhoneNumberViewModel
,仍然会抛出相同的异常,尽管已经有一个视图非常相同的操作和控制器,使用相同的视图模型。

无需上传更多屏幕截图或其他任何内容,问题似乎出在 VS 2017 代码生成器中(脚手架视图问题),希望能在以下一些更新中得到解决。

因此请耐心等待并使用复制/粘贴方法,无论如何您都需要重新设计表单。显然,这不是你(我)问题的解决方案,它只是说 - “你没有做错任何事,这是一个 VS bug,等待更新”。


3
投票

我多次遇到过这个问题以及与脚手架相关的类似问题,并且我的 goto 解决方案几乎每次都有效 - 包括针对这个特定问题。

  1. 右键单击解决方案文件
  2. 选择“重建解决方案”

...然后再次尝试您的操作。

这在 VS2017 和 VS2019 中多次对我有用 - 包括今天最新的 VS 2019。

脚手架似乎被已经建好的东西绊倒了,原因不明。


2
投票

我也遇到了同样的问题,请确保您的控制器中没有问题,我有未完成的代码导致了错误,一旦我将其注释掉,它就创建了没有任何问题的视图。


1
投票

我遇到了同样的问题,我通过从项目文件中将 C# 版本从 7.2 降级到 7.1 来解决它

显示错误。

我记得我应用了一些 VS 代码提示,升级了 C# 版本。代码提示是在方法调用中添加参数名称,例如

后来我尝试添加一个视图,结果出现了上面的问题。经过几个小时的搜索却一无所获,我开始记起 C# 版本的变化

我降级了 C# 版本并删除了参数名称,然后成功添加了视图。

顺便说一句,该错误与模型无关,这是一个很大的误导。


1
投票

我也遇到了这个问题,如果您已经创建或修改了类(用于脚手架)并且尚未完成构建,请先构建项目,然后重试。

.NET 无法搭建任何尚未构建的类。


1
投票

我真的不知道发生了什么,恢复到旧版本的代码可以修复它。

我尝试过但不起作用的事情

  • 重建
  • 清理/删除 bin obj 文件夹
  • 使用不同的模型
  • 使用不同的模板
  • 升级视觉工作室
  • 确保没有编译错误。

我知道的事情不是问题

  • 继承其他类的模型类

我怀疑有问题但尚未测试。

  • 具有相同参数的泛型方法仅因泛型约束而不同

如果有兴趣,我可以提供代码和详细信息。


0
投票

我和你有同样的问题,但我设法用以下方法解决了问题:

  1. 构建项目(将看到构建失败)。
  2. 解决项目直至成功构建项目。
  3. 然后,再次添加/生成View。 (应该能够自动生成View)

0
投票

自从这个问题在这里发布以来可能已经很长时间了,但我从命令行使用 VS2019 (16.9.2) 和/或 dotnet-aspnet-codegenerator 遇到了同样的问题。

经过数小时和数天的搜索,上述解决方案对我来说都不起作用,我最终找到了原因。

这背后的原因是我首先从实现我的控制器开始,该控制器调用 Web API 来异步获取或发布数据。所以几乎方法都是异步的。

为了解决这个问题,我必须首先搭建控制器并保留默认实现。然后视图的脚手架就成功完成了。


0
投票

对于我来说,事实证明我的

Program
类在 ASP.NET Core Web API 中并未被称为
Program
。将其重新命名为
Program
解决了它。


0
投票

我刚刚遇到了同样的错误,但上述解决方案都不适合我。 结果发现安装了一个已弃用的 NuGet 包,这不知何故弄乱了脚手架。

因此,对于那些遇到同样问题但没有任何作用的人 - 检查您的项目是否有不必要和过时的软件包。 就我而言,这是版本 2.2.0 中的 Microsoft.AspNetCore.Identity。删除它修复了我的错误,并且项目仍然运行良好。

© www.soinside.com 2019 - 2024. All rights reserved.