当我尝试在 .NET Core 中添加新的 ApiController 时出现 NullReferenceException
NullReferenceException when I try to add a new ApiController in .NET Core
我看到这条错误消息:
当我尝试按照以下步骤搭建控制器并清空 API 控制器时:
Right-click on folder
> Add
> Controller...
> Add Scaffold -> API Controller - Empty
> Click Add
规格:
- Windows 10 家企业
- Visual Studio 专业版 2017 15.6.4
- 微软 .NET 框架 4.7.02556
- .NET 核心 2.0
- Web API ASP.NET 核心 Web 应用程序
---编辑---
我现在无法重现问题。 @chriss-pratt 给出的其中一个建议一定奏效了(谢谢!)在做教程时,我遇到了 add scaffold tooling and perform initial migration 的部分。如果您遇到这种情况并且以下内容不起作用,我希望教程的这一部分(如果您决定坚持使用脚手架)。
ASP.NET 核心严格来说没有 ApiController
class。 ASP.NET Core 没有单独的 MVC 和 Web Api 组件。一切都只是Controller
。 ApiController
可通过单独的 "shim" NuGet 程序包获得,但这只是为了让迁移旧的 ASP.NET Web Api 代码更容易。您不应该将它用于任何新开发。
就是说,您在这里遇到的问题与脚手架有关。这可能是因为您正在尝试构建 ApiController
而不仅仅是 Controller
。您没有提供有关您使用的 Visual Studio 版本或 ASP.NET Core 版本的任何信息。
尝试简单的操作,例如关闭和重新启动 Visual Studio。如果仍然存在,您可以尝试修复 Visual Studio。按 windows 键并开始输入 "Visual Studio Installer"。当它出现时打开它。在列表中安装的 Visual Studio 副本下方,将有一个下拉菜单,看起来像三个点堆叠在一起。 "Repair" 那里有一个选项。开始这个过程,然后去喝杯咖啡。它实际上是重新安装 Visual Studio,因此可能需要一段时间。
综上所述,老实说,您最好的选择就是不要担心。无论如何,脚手架几乎是无用的。特别是 ASP.NET 核心,你得到的只是一个 class,你可以轻松地自己创建。控制器只是一个继承自 Controller
的 class。在您的 Controllers
目录中添加一个新的 class,将其命名为 WhateverController
,然后在代码中的名称后添加 : Controller
。然后,开始添加您的操作,例如正常操作。
我看到这条错误消息:
当我尝试按照以下步骤搭建控制器并清空 API 控制器时:
Right-click on folder
> Add
> Controller...
> Add Scaffold -> API Controller - Empty
> Click Add
规格:
- Windows 10 家企业
- Visual Studio 专业版 2017 15.6.4
- 微软 .NET 框架 4.7.02556
- .NET 核心 2.0
- Web API ASP.NET 核心 Web 应用程序
---编辑---
我现在无法重现问题。 @chriss-pratt 给出的其中一个建议一定奏效了(谢谢!)在做教程时,我遇到了 add scaffold tooling and perform initial migration 的部分。如果您遇到这种情况并且以下内容不起作用,我希望教程的这一部分(如果您决定坚持使用脚手架)。
ASP.NET 核心严格来说没有 ApiController
class。 ASP.NET Core 没有单独的 MVC 和 Web Api 组件。一切都只是Controller
。 ApiController
可通过单独的 "shim" NuGet 程序包获得,但这只是为了让迁移旧的 ASP.NET Web Api 代码更容易。您不应该将它用于任何新开发。
就是说,您在这里遇到的问题与脚手架有关。这可能是因为您正在尝试构建 ApiController
而不仅仅是 Controller
。您没有提供有关您使用的 Visual Studio 版本或 ASP.NET Core 版本的任何信息。
尝试简单的操作,例如关闭和重新启动 Visual Studio。如果仍然存在,您可以尝试修复 Visual Studio。按 windows 键并开始输入 "Visual Studio Installer"。当它出现时打开它。在列表中安装的 Visual Studio 副本下方,将有一个下拉菜单,看起来像三个点堆叠在一起。 "Repair" 那里有一个选项。开始这个过程,然后去喝杯咖啡。它实际上是重新安装 Visual Studio,因此可能需要一段时间。
综上所述,老实说,您最好的选择就是不要担心。无论如何,脚手架几乎是无用的。特别是 ASP.NET 核心,你得到的只是一个 class,你可以轻松地自己创建。控制器只是一个继承自 Controller
的 class。在您的 Controllers
目录中添加一个新的 class,将其命名为 WhateverController
,然后在代码中的名称后添加 : Controller
。然后,开始添加您的操作,例如正常操作。