c# - 在 ASP.NET MVC(5) 项目中使用 Web API 有什么优势?

标签 c# asp.net ajax json asp.net-mvc

我正在 ASP.NET MVC 5 中实现企业 Web 应用程序。在许多情况下,我正在编写 AJAX 获取和发布以及与服务器应用程序通信。目前我正在编写 Controller 操作来为这些请求提供服务,通常返回 JSON 结果。当我在客户端传递 JSON 时,操作方法参数绑定(bind)似乎也可以无缝工作。

我不想在不合适的做法上走得太远,所以问题来了,向我的项目添加 Web API 支持并重构我当前的 ajax - Controller 做法有什么好处?

最佳答案

与 MVC + Ajax 相比,使用 WebAPI 的优点很少:

  1. 内部序列化

    WebAPI 具有内部序列化,这使得返回特定数据更加容易,无需您自己的扩展方法或使您的 Controller 依赖于序列化框架库。

  2. 行动结果助手

    您可以使用大量的操作结果助手,例如 Ok()NotFound()InternalServerError(),它们都返回 IHttpActionResult,是什么让您的代码更易于阅读和维护,并清楚地表达您的意图。

  3. Action 结果抽象

    使用 IHttpActionResult 您可以轻松抽象结果,这在对 Controller 进行单元测试时很有用。

  4. 可自托管

    使用 OWIN,您可以轻松地自行托管您的 WebAPI 项目,这使您的应用程序更易于维护且独立于 IIS。

  5. 原生属性路由

    WebAPI 实现了属性路由,这使得所有路由配置更加容易(并且在使用基于特性的架构时有所帮助)。

  6. DI 配置改进

    WebAPI 和 MVC 都有自己的组合根和不同的 DI 实现。 Microsoft 对 WebAPI 进行了一些改进,使其更易于使用和维护。

我会说,只有当 WebAPI 不存在时,使用 MVC + Ajax 才是可行的,因为这是唯一的选择。

关于c# - 在 ASP.NET MVC(5) 项目中使用 Web API 有什么优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31741047/

相关文章:

javascript - 在调用 Ajax 的页面中执行 Javascript

c# - 如何通过C#通过OpenXML从Word(.Docx)中提取OLE文件

ñÑ 字符的 Javascript 验证适用于 Chrome,但不适用于 Firefox

c# - 从服务器端访问网络存储 - 可能吗?

asp.net - 一个 ASP.NET Web 应用程序中的经典 .ASP 和 .NET .aspx 网页

php - JQuery .ajax 超时增加不起作用

C# 创建通用 Vector4 类?

c# - 在任务上指定 LongRunning 有多重要?

C# 如何在 Word Interop 中获取标题的自动编号

在 Javascript 中使用设置间隔函数在 IE 中无法正确调用 PHP