Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core Asp.net核心中的Web应用程序与Web Api项目类型_Asp.net Core - Fatal编程技术网

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

Asp.net core Asp.net核心中的Web应用程序与Web Api项目类型,asp.net-core,Asp.net Core,我知道Asp.Net MVC和Asp.Net Web API在Asp.Net核心中合并为一个代码,它们继承自Controller基类,可以返回IActionResult的实现。它可以是MVC的视图,也可以是web api的Json视图 但是当我想创建一个Asp.net核心项目时,它提供了两个模板(Web应用程序和Web Api),根据我在上面所说的,这些控制器之间没有区别,为什么有两个模板?是否存在我不知道的差异?web应用程序模板将创建文件夹并导入web应用程序所需的内容,如jquery、cs

我知道
Asp.Net MVC
Asp.Net Web API
Asp.Net核心
中合并为一个代码,它们继承自
Controller
基类,可以返回
IActionResult
的实现。它可以是MVC的视图,也可以是web api的Json视图


但是当我想创建一个
Asp.net核心
项目时,它提供了两个模板
(Web应用程序和Web Api)
,根据我在上面所说的,这些控制器之间没有区别,为什么有两个模板?是否存在我不知道的差异?

web应用程序模板将创建文件夹并导入web应用程序所需的内容,如jquery、css等。web api模板将创建文件夹并导入web api所需的内容。此外,默认情况下创建的控制器将具有不同的实现,例如,web应用程序将返回视图,并且视图将在适当的文件夹中创建

因此,尽管它们来自相同的控制器,但每种类型的项目都需要不同的依赖关系

如果我是你的话,我会继续为每种类型创建一个,并看到不同之处


如果希望在同一项目中同时使用web api和web应用程序,请使用。这样,您的web和api将具有单独的控制器、文件夹和模型。另外,如果您希望将来将它们分开,那么这样做会很容易。

两个模板之间的区别是-

WebAPI模板以一个控制器类开始,该类允许您在/api/Values端点响应RESTful请求

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


如果您想创建同时使用MVC和API控制器的项目,那么我建议使用ASP.NET核心Web应用程序模板并添加require依赖项。

我想创建一个包含两个API和控制器的项目,最好将它们彼此分离,并在不同的项目或同一项目中创建它们(在控制器文件夹中,我同时拥有MVC和Api控制器)?创建空白解决方案,然后仅添加asp.net core web app项目和asp.net core web Api项目,与仅在web应用程序项目中为Api项目添加单独的文件夹或区域相比,有何优点(或缺点)?