.net core “为什么?”;dotnet新角度;及;dotnet新webapi“;创建不同的控制器?

.net core “为什么?”;dotnet新角度;及;dotnet新webapi“;创建不同的控制器?,.net-core,.net Core,为什么这两个.NET核心命令为Web API控制器创建不同的签名 dotnet new angular 将创造 [Route("api/[controller]")] public class SampleDataController : Controller [Route("api/[controller]")] [ApiController] public class ValuesController : ControllerBase 而dotnet新webapi 将创造 [Route

为什么这两个.NET核心命令为Web API控制器创建不同的签名

dotnet new angular
将创造

[Route("api/[controller]")]
public class SampleDataController : Controller
[Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
dotnet新webapi

将创造

[Route("api/[controller]")]
public class SampleDataController : Controller
[Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
在这两种情况下,它都会创建web API。但是,在
dotnet new webapi
中,它应用
ApiController
属性并从ControllerBase派生,而在
dotnet new angular
中,没有任何
ApiController
属性,它从
Controller
派生


这适用于相同版本的.NET Core 2.1。为什么?

dotnet新的webapi生成您想要模拟的控制器。使用ApiController属性和ControllerBase是最新/推荐的方法。

并非所有模板都已更新为最新版本,因此在本例中,WebApi模板是最新的,这就是为什么您会看到不同的ControllerBase和ApiController属性,角度模板尚未更新,我相信它仍然使用角度5。