当我尝试在.NET Core中添加新的ApiController时出现NullReferenceException

时间:2018-03-29 05:13:43

标签: asp.net-core .net-core asp.net-core-webapi

我看到了以下错误消息:

NullReferenceException on add of empty ApiController

当我尝试通过以下步骤为控制器构建控制器并清空API控制器时:

  

右键单击文件夹

     

>添加

     

>控制器......

     

>添加脚手架 - > API控制器 - 清空

     

>单击“添加”

规格:

  • Windows 10企业版
  • Visual Studio Professional 2017 15.6.4
  • Microsoft .NET Framework 4.7.02556
  • .NET Core 2.0
  • Web API ASP.NET核心Web应用程序

--- ---编辑

我现在无法复制这个问题。 @ chriss-pratt提出的建议之一必定有效(谢谢!)在做教程时,我遇到了add scaffold tooling and perform initial migration的部分。如果您遇到这种情况并且下面的内容不起作用,本教程的这一部分我很有希望(如果您决定坚持使用脚手架)。

1 个答案:

答案 0 :(得分:2)

ASP.NET Core并不严格拥有ApiController类。 ASP.NET Core没有单独的MVC和Web Api组件。一切都只是ControllerApiController可通过单独的“shim”NuGet包获得,但这只是为了使旧的ASP.NET Web Api代码更容易迁移。你不应该将它用于任何新的开发。

那就是说,你在这里遇到的问题是脚手架。这可能是因为您试图构建ApiController而不仅仅是Controller。您没有提供有关您正在使用的Visual Studio版本或ASP.NET Core版本的任何信息。

尝试关闭和重新启动Visual Studio等简单的东西。如果它仍然存在,您可以尝试修复Visual Studio。点击Windows键并开始输入“Visual Studio Installer”。当它出现时打开它。在列表中安装的Visual Studio副本下方,会出现一个下拉菜单,看起来像三个点堆叠在一起。那里有“修理”选项。开始这个过程,去喝一杯咖啡。它基本上重新安装了Visual Studio,因此可能需要一段时间。

所有这一切,老实说,你最好的选择就是不要担心它。无论如何,脚手架几乎没用。特别是使用ASP.NET Core,你得到的只是一个类,你可以自己轻松创建。控制器只是一个继承自Controller的类。在Controllers目录中添加一个新类,将其命名为WhateverController,然后在代码中的名称后添加: Controller。然后,开始添加您的操作,例如正常。