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

My understanding is both Web API Controller and MVC Controller can return JSON.

考虑到我的情况,我应该用Web API Controller还是MVC Controller

推荐答案

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

MVC控制器通常依赖于MVC框架,如果您查看默认模板以及社区和您的同行所做的大部分工作,您会注意到几乎所有MVC控制器的实现都考虑了视图.

就我个人而言,当我打算用View()响应时,我会使用MVC控制器,对于任何不依赖于特定视图的东西,我都会使用Web API.

当然,有一些警告,但一般来说,如果您不需要MVC的模型绑定行为,您的服务以数据为中心,操作以数据为中心(例如CRUD操作),那么您可能需要一个"Web API控制器"而不是"模型视图控制器".相反,如果您的操作是以视图为中心的(例如,向用户提供一个用户管理页面),或者您需要MVC的模型绑定来生成"ajax部分"(不太可能),那么您将需要一个MVC控制器.

Personally, I use Web API controllers for driving JSON-based RESTful clients, I use MVC controllers for handling basic browser routing and delivery of the SPA.

Json相关问答推荐

JOLT拉平数组

如何在Vega中使标记的符号在鼠标指针悬停时可点击

VBA json按特定属性名称提取所有数据

(Kotlin)com.google.gson.internal.LinkedTreeMap无法转换为com.example.phonetest2.model.HallData

当 JSON 字段名称有空格时,ABAP 中的 JSON 反序列化

在 python 中循环 JSON 数组

使用 Power BI 中的 Deneb 视觉效果绘制面积图中的 X 轴日期

将 json 转换为 jsonb 安全吗?

Jolt 转换数组对象并将某些字段移动到嵌套数组

将=分隔值文件转换为:json文件

如果值不存在,则将值插入 JSON 数组

如何在 wso2 中组合 2 个 json 有效负载?

如何在linux中用jq过滤json数组?

如果 JSON 对象包含列表中的子字符串,则丢弃它们

使用 json 值过滤 Django 模型

如何限制resolveJsonModule的范围?

python,将Json写入文件

json.dumps 打乱了顺序

消息通知产生此内容无法显示

使用杰克逊创建一个 json 对象