c# - 是否混合使用 asp.net mvc 应用程序和 Web API

标签 c# asp.net-mvc web-services api asp.net-mvc-4

我有一个 MVC 应用程序。我已经构建了两层 BLLDAL 并且可以使用了。

我想添加一个服务层:我了解了 Asp.Net Web API,我想用它来构建这个层。

在 Adam Freeman 的书中(Pro Asp.net MVC4)我读到了这个

You can freely mix regular controllers and API controllers in a project. In fact, you will usually need to if you want to support HTML clients because API controllers will only return object data and will not render a view.

所以,我想知道在哪些情况下我必须使用此解决方案之一:

  1. 使用 Asp.Net MVC 应用网络 API(作为服务层)
  2. 在 Web API 应用程序中混合使用这两个应用程序

最佳答案

是的,可以在同一个项目或不同的项目中使用 WebAPI Controller 和 MVC Controller ,但 WebAPI 提供完全独立的职责。

WebAPI Controller 本身不能充当应用程序的“服务层”,因为它只是将部分功能公开为 RESTful 服务,可以使用 HTTP 请求(例如来自客户端的 AJAX 调用)调用。

您应该在您的 MVC 和 WebAPI Controller 中使用您的服务层(业务层),并且仅通过 WebAPI 公开您需要的数据。无法使用 WebAPI 方法代替您的业务层。

关于c# - 是否混合使用 asp.net mvc 应用程序和 Web API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30502219/

相关文章:

asp.net-mvc - Razor - 如何在使用 @{} 或 @() 时防止 View 源中不必要的换行?

c# - asp MVC 中应该使用多少 JavaScript 代码?

linux - 优化生产服务器上的图像

c# - 使用 linq to xml 解析 xml 时出现问题

c# - 不使用预先构建的 .net 对象获取所有子文件夹

c# - Azure,ClosedXML : Build will NOT include DocumentFormat. OpenXML 在我的应用程序的 bin 文件夹中

asp.net - mvc 部署需要哪些文件?

c# - 有没有一种方法可以将带有 count 的 for 循环变成递归循环?

C# 控制台应用程序 session /存储

c# - 通过 SOCKS5 代理连接到 .NET 网络服务