点网核心Web API项目模板不同

时间:2018-11-20 15:01:27

标签: asp.net-core

我只是比较了dotnet new webapidotnet new angular生成的代码,并且只检查了Web api代码。

由于某些原因,控制器派生自不同的类,在使用dotnet new webapi创建的项目中,控制器是从 ControllerBase 派生的;而在使用dotnet new angular创建的项目中,控制器是从 >控制器

操作的返回类型也有所不同,在角度模板中,其返回类型为实际返回类型,而在webapi模板中,其返回类型为 ActionResult

enter image description here

那是为什么?

哪个选项是“最佳”选项?他们为什么不同?

2 个答案:

答案 0 :(得分:1)

.NET Core Web API和MVC控制器相似之前。

但是从2.0 / 2.1开始,Web API已更改。

现在,您应该从ControllerBase而不是Controller派生类,并使用[ApiController]属性。

旧样式仍然可以继续使用。

我想,Angualar使用Web API,因此应该更新模板。

请参见WEb API documentation

答案 1 :(得分:1)

ControllerBase没有任何Razor / view支持。 ControllerBase用于API。