json - 在 ASP.NET 中使用 WebAPI 或 MVC 返回 JSON

我正在构建一个客户端脚本繁重的 ASP.NET MVC 应用程序,它将使用 JSON 和 jQuery 来操作 DOM。

我的理解是Web API ControllerMVC Controller都可以返回JSON。

根据我的情况,我应该使用 Web API Controller 还是 MVC Controller

最佳答案

Web API Controller 可以在任何 ASP.NET 应用程序中创建和托管,而不仅仅是 MVC 应用程序。因此,创建 Web API 的一个明显原因是如果您没有 MVC 前端(例如,由您的公司/组织托管的经典 RESTful Web 服务。)

MVC Controller 通常依赖于 MVC 框架,如果您查看默认模板以及社区和您的同行所做的大部分工作,您会注意到几乎所有 MVC Controller 都是在考虑 View 的情况下实现的。

就个人而言,当我打算使用 View() 进行响应时,我会使用 MVC Controller ,并且我将对不依赖于特定 View 的任何事情使用 Web API。

当然有一些注意事项,但一般来说,如果您不需要 MVC 的模型绑定(bind)行为,您的服务是以数据为中心的,并且操作是以数据为中心的(例如 CRUD 操作),那么您可能需要一个 ' Web API Controller ”而不是“ Model View Controller ”。相反,如果您的操作是以 View 为中心的(例如,向用户提供用户管理页面),或者您需要 MVC 的模型绑定(bind)来生成“ajax 部分”(不太可能),那么您将需要一个 MVC Controller 。

就我个人而言,我使用 Web API Controller 来驱动基于 JSON 的 RESTful 客户端,我使用 MVC Controller 来处理基本的浏览器路由和 SPA 的交付。

https://stackoverflow.com/questions/10346342/

相关文章:

javascript - 如何从 JavaScript 中的 URL 获取 JSON?

json - postman :发送嵌套的 JSON 对象

javascript - 使用 Javascript 将 XML 转换为 JSON(并返回)

c# - 如何从 URL 获取 JSON 字符串?

javascript - node.js TypeError : path must be abso

javascript - JSON.stringify 以 pretty-print 方式输出到 d

json - 将 curl POST 与 bash 脚本函数中定义的变量一起使用

c# - json.net 有关键方法吗?

json - 如何在 Github Wiki 中设置 JSON block 的样式?

javascript - 如何测试字符串是否为 JSON?