【问题标题】:Web Application vs Web Api project types in Asp.net CoreAsp.net Core 中的 Web 应用程序与 Web Api 项目类型
【发布时间】:2021-05-26 21:16:53
【问题描述】:

我知道Asp.Net MVCAsp.Net Web APIAsp.net Core 中合并为一个代码,它们继承自Controller 基类,并且都可以返回IActionResult 的实现。它是 MVC 的 View 或 Web api 的 Json。

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

【问题讨论】:

    标签: asp.net-core


    【解决方案1】:

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

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

    如果我是你,我会继续为每种类型创建一个,看看有什么不同。

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

    【讨论】:

    • 我想构建一个有两个 api 和控制器的项目,最好将它们彼此分开并在不同的项目或同一个项目中创建它们(在控制器文件夹中我有 MVC 和API 控制器)?
    • 创建一个空白解决方案然后只添加一个 asp.net 核心 web 应用程序项目和一个 asp.net 核心 web api 项目而不是一个单独的文件夹或区域是否有任何优点(或缺点) Web 应用程序项目中的 api 项目?
    【解决方案2】:

    2个模板的区别是-

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

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

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

    【讨论】:

      猜你喜欢
      • 2018-11-30
      • 2022-12-28
      • 1970-01-01
      • 2018-05-17
      • 2010-09-21
      • 2011-02-03
      • 1970-01-01
      • 2014-06-11
      • 1970-01-01
      相关资源
      最近更新 更多