10

我被告知要为客户端设计一个 API 来操作一些数据。现在,为了跟上 Jones 的步伐,我使用 WebAPI 设计了这个。我通过 $.Ajax 向我的 Restful Webservice 发布一个对象

为什么这与使用相同的 $.Ajax 发布到标准 MVC 4.0 控制器有什么不同?

有什么优势?

谢谢

====

关于潜在答案:

注意 如果您使用过 ASP.NET MVC,那么您已经熟悉控制器。它们在 Web API 中的工作方式类似,但 Web API 中的控制器派生自 ApiController 类而不是 Controller 类。您会注意到的第一个主要区别是 Web API 控制器上的操作不返回视图,而是返回数据。

====

这难道不是多余的吗,毕竟你总是可以

return JSON(x);

从任何 MVC 控制器。

4

3 回答 3

7

http://encosia.com/asp-net-web-api-vs-asp-net-mvc-apis/

Dave Ward 的 ASP.NET Web API 与 ASP.NET MVC “API”——感谢 Ant P

美丽的剧情简介:

  • 内容协商
  • 灵活性
  • 关注点分离
于 2013-04-25T20:15:04.357 回答
2

MVC 针对将 Web 浏览器作为客户端进行了优化。Web API 更有能力支持许多不同的客户端。如果您唯一的客户端是 Web 浏览器,那么 MVC 可能会是一个更好的选择。

于 2013-04-26T11:21:46.833 回答
1

您的 $.Ajax 方法没有区别。您的网页不应该关心 ajax 服务器如何实现自身,尽管它必须知道它是否支持诸如 oData 之类的东西以及不支持的东西。

在服务器端,它们之间有很多不同之处。当然,您可以在 MVC 中创建 Ajax 处理程序,但 WebAPI 为您提供了更多工具和更多功能。

于 2013-04-25T21:20:28.763 回答