我知道Asp.Net MVC
和Asp.Net Web API
已合并到Asp.net Core
中的一个代码中,并且它们继承自Controller
基类,并且都可以返回IActionResult
的实现。对于web api来说,它是MVC或Json的视图。
但是当我想创建一个Asp.net Core
项目时,它提供了两个模板(Web Application and Web Api )
,根据我上面所说的,这些控制器之间没有区别,为什么有两个模板?我有什么不同之处吗?
答案 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。