【问题标题】:could not get the reflection type for model无法获取模型的反射类型
【发布时间】:2017-04-27 15:06:09
【问题描述】:

第一步:右键生成

第二步:设置

第 3 步:错误信息

第 4 步:我的模型

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

【问题讨论】:

  • 怀疑这是 VS 2017 中 .Net Core 脚手架的一个已知问题:github.com/aspnet/Scaffolding/issues/430
  • 我有同样的问题,但是当我创建一个空白的新项目时,我可以搭建脚手架。我不知道有什么区别。
  • 嗨@Neo Yap,同样的问题,你解决了吗?
  • 参见 Phil.Wheeleer 链接。这已经在预览版 2.0 中修复了
  • @NeoYap 祝你好运

标签: c# asp.net-core-mvc visual-studio-2017


【解决方案1】:

到目前为止,即使您尝试为现有控制器和现有操作添加另一个视图,例如 ManageController.AddPhoneNumber 和现有视图模型 - AddPhoneNumberViewModel,尽管已经存在视图,但仍然会引发相同的异常对于相同的动作和控制器,使用相同的视图模型。

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

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

【讨论】:

  • 但是 VS2019 16.3.9 的错误是相同的,因此等待或更新可能需要很长时间
  • @oleksa 也许你应该联系 VS 团队 @Microsoft?
【解决方案2】:

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

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

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

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

      显示错误。

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

      后来我尝试添加一个视图,它显示了上述问题。经过这么多小时的搜索却一无所获,我开始记起 C# 版本的变化

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

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

      【讨论】:

      • 我无法降级 C# 语言版本,因为它在项目的属性中被禁用。所以我创建了没有模型的 emtpy 视图并添加了模型,因为它是 documented
      • @oleksa 此答案基于 VS 2017 的早期构建。我相信这已在 VS 2017 和 VS 2019 的后续构建中得到修复尝试更新您的 Visual Studio
      • 好吧,我实际上已经尝试过 VS2019 16.3.9 但没有运气
      • @oleksa 您可以在具有 属性的 .csproj 中降级,尽管与主要问题无关
      【解决方案5】:

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

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

      【讨论】:

        【解决方案6】:

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

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

        【讨论】:

          【解决方案7】:

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

          我尝试过的东西不起作用

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

          我知道的不是问题

          • 继承其他类的模型类

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

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

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

          【讨论】:

            【解决方案8】:

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

            经过数小时和数天的搜索,上面提到的解决方案都没有对我有用,我最终找到了原因。

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

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2018-04-14
              • 1970-01-01
              • 2010-12-20
              • 1970-01-01
              • 2013-12-16
              • 2012-04-03
              • 2015-09-13
              • 1970-01-01
              相关资源
              最近更新 更多