Asp.net Core中的Web应用程序与Web Api项目类型

时间:2016-12-25 17:20:03

标签: asp.net-core

我知道Asp.Net MVCAsp.Net Web API已合并到Asp.net Core中的一个代码中,并且它们继承自Controller基类,并且都可以返回IActionResult的实现。对于web api来说,它是MVC或Json的视图。

但是当我想创建一个Asp.net Core项目时,它提供了两个模板(Web Application and Web Api ),根据我上面所说的,这些控制器之间没有区别,为什么有两个模板?我有什么不同之处吗?

2 个答案:

答案 0 :(得分:7)

Web应用程序模板将创建文件夹并导入Web应用程序所需的内容,例如jquery,css等.Web api模板将为web api创建文件夹和导入内容。默认情况下创建的控制器也会有不同的实现,例如,Web应用程序将返回视图,并且视图将在相应的文件夹中创建。

因此,虽然它们派生自相同的控制器,但每种类型的项目都需要不同的依赖关系。

如果我是你,我会继续为每种类型创建一个并看到差异。

如果您想在同一个项目中同时拥有web api和Web应用程序,请使用areas。这样,您的web和api将具有单独的控制器,文件夹和模型。此外,如果您希望将来将它们分开,也很容易实现。

答案 1 :(得分:5)

两个模板之间的区别是 -

WebAPI模板以Controller类开头,该类允许您在/ api / Values端点响应RESTful请求。

Web应用程序模板将为您提供一个启用MVC框架的项目,其中包含一些Razor视图,安装了bootstrap CSS框架和jQuery库。

如果你想用MVC和API控制器创建项目,那么我建议你使用ASP.NET Core Web Application模板并添加require dependencies。