到目前为止,即使您尝试添加现有控制器和现有操作的另一个视图,例如使用现有视图模型 -
ManageController.AddPhoneNumber
- AddPhoneNumberViewModel
,仍然会抛出相同的异常,尽管已经有一个视图非常相同的操作和控制器,使用相同的视图模型。
无需上传更多屏幕截图或其他任何内容,问题似乎出在 VS 2017 代码生成器中(脚手架视图问题),希望能在以下一些更新中得到解决。
因此请耐心等待并使用复制/粘贴方法,无论如何您都需要重新设计表单。显然,这不是你(我)问题的解决方案,它只是说 - “你没有做错任何事,这是一个 VS bug,等待更新”。
我多次遇到过这个问题以及与脚手架相关的类似问题,并且我的 goto 解决方案几乎每次都有效 - 包括针对这个特定问题。
- 右键单击解决方案文件
- 选择“重建解决方案”
...然后再次尝试您的操作。
这在 VS2017 和 VS2019 中多次对我有用 - 包括今天最新的 VS 2019。
脚手架似乎被已经建好的东西绊倒了,原因不明。
我也遇到了同样的问题,请确保您的控制器中没有问题,我有未完成的代码导致了错误,一旦我将其注释掉,它就创建了没有任何问题的视图。
我也遇到了这个问题,如果您已经创建或修改了类(用于脚手架)并且尚未完成构建,请先构建项目,然后重试。
.NET 无法搭建任何尚未构建的类。
我真的不知道发生了什么,恢复到旧版本的代码可以修复它。
我尝试过但不起作用的事情
我知道的事情不是问题
我怀疑有问题但尚未测试。
如果有兴趣,我可以提供代码和详细信息。
我和你有同样的问题,但我设法用以下方法解决了问题:
自从这个问题在这里发布以来可能已经很长时间了,但我从命令行使用 VS2019 (16.9.2) 和/或 dotnet-aspnet-codegenerator 遇到了同样的问题。
经过数小时和数天的搜索,上述解决方案对我来说都不起作用,我最终找到了原因。
这背后的原因是我首先从实现我的控制器开始,该控制器调用 Web API 来异步获取或发布数据。所以几乎方法都是异步的。
为了解决这个问题,我必须首先搭建控制器并保留默认实现。然后视图的脚手架就成功完成了。
对于我来说,事实证明我的
Program
类在 ASP.NET Core Web API 中并未被称为 Program
。将其重新命名为 Program
解决了它。
我刚刚遇到了同样的错误,但上述解决方案都不适合我。 结果发现安装了一个已弃用的 NuGet 包,这不知何故弄乱了脚手架。
因此,对于那些遇到同样问题但没有任何作用的人 - 检查您的项目是否有不必要和过时的软件包。 就我而言,这是版本 2.2.0 中的 Microsoft.AspNetCore.Identity。删除它修复了我的错误,并且项目仍然运行良好。