2016-12-25 43 views
5

我知道Asp.Net MVCAsp.Net Web API合并为一个代码Asp.net Core,他们从Controller基类继承并能的IActionResult所有收益的实现。它是用于web api的MVC或Json视图。Web应用程序VS网络API项目类型

但是,当我想创建一个Asp.net Core项目,它提供了两个模板(Web Application and Web Api),根据我在上面说,有这些控制器之间没有差异,为什么会出现两个模板?有没有我不知道的差异?

回答

6

该Web应用程序模板将创建文件夹和导入一个Web应用程序所需的东西,如jQuery,CSS等。Web API模板将创建文件夹和导入一个Web API的东西。此外,默认情况下创建的控制器将具有不同的实现,例如,Web应用程序将返回视图,视图将在适当的文件夹中创建。

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

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

如果您想在同一个项目中同时使用web api和web应用程序,请使用areas。这样你的web和api将有单独的控制器,文件夹和模型。同样,如果你想将它们分开,将很容易做到这一点。模板

+0

我想建立一个项目,它有两个API和控制器,它更好,我把它们彼此分开,并在不同的项目或同一个项目中创建它们(在控制器文件夹中我有两个MVC Api控制器)? – pejman

+0

查看我的编辑请 – CodingYoshi

+0

是否有任何优势(或劣势)创建一个空白的解决方案,然后添加一个asp.net核心Web应用程序项目和一个asp.net核心web api项目vs只是一个单独的文件夹或区域的api Web应用程序项目中的项目? – Reza

3

的区别2之间是 -

的WebAPI模板开始用控制器类,可以让你在/ api来RESTful请求响应/值端点。

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

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