我只是比较了dotnet new webapi
和dotnet new angular
生成的代码,并且只检查了Web api代码。
由于某些原因,控制器派生自不同的类,在使用dotnet new webapi
创建的项目中,控制器是从 ControllerBase 派生的;而在使用dotnet new angular
创建的项目中,控制器是从 >控制器
操作的返回类型也有所不同,在角度模板中,其返回类型为实际返回类型,而在webapi模板中,其返回类型为 ActionResult
那是为什么?
哪个选项是“最佳”选项?他们为什么不同?
答案 0 :(得分:1)
.NET Core Web API和MVC控制器相似之前。
但是从2.0 / 2.1开始,Web API已更改。
现在,您应该从ControllerBase
而不是Controller
派生类,并使用[ApiController]
属性。
旧样式仍然可以继续使用。
我想,Angualar使用Web API,因此应该更新模板。
答案 1 :(得分:1)
ControllerBase
没有任何Razor / view支持。 ControllerBase
用于API。