news 2026/7/14 8:20:13

Asp.net core ActionResult继承类

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Asp.net core ActionResult继承类

在 ASP.NET Core 中,ActionResult是一个抽象基类,框架提供了大量继承自它的具体返回类型。为了方便记忆和查阅,以下按功能维度对所有常见的ActionResult派生类进行归纳总结:

1. 数据与内容响应类

用于向客户端返回具体的数据载荷或原始文本。

返回类型便捷方法核心作用典型场景
OkObjectResultOk(obj)返回 200 OK + JSON 序列化对象查询成功、列表获取
OkResultOk()仅返回 200 OK,无响应体操作成功但无需返回数据
JsonResultJson(obj)强制 JSON 序列化,忽略内容协商需要绕过 Accept 头强制返回 JSON
ContentResultContent(str, type)原样输出字符串,指定 ContentType返回 XML、HTML、纯文本、CSV
ObjectResultStatusCode(code, obj)自定义状态码 + 对象序列化非标准状态码(如 418、429)带响应体

2. 资源创建与异步任务类

遵循 RESTful 规范,用于 POST 创建资源和异步处理反馈。

返回类型便捷方法HTTP 状态码核心作用
CreatedResultCreated(uri, obj)201手动指定新资源的 Location URL
CreatedAtActionResultCreatedAtAction(action, route, obj)201根据 Action 名自动生成 Location(最常用)
CreatedAtRouteResultCreatedAtRoute(routeName, route, obj)201根据路由名称生成 Location
AcceptedResultAccepted(obj)202请求已接收,异步处理中
AcceptedAtActionResultAcceptedAtAction(action, route, obj)202异步处理中,附带状态查询地址

3. 客户端错误类

用于精确表达不同类型的客户端请求问题。

返回类型便捷方法HTTP 状态码语义区分
BadRequestObjectResultBadRequest(obj)400请求语法/参数格式错误
UnauthorizedResultUnauthorized()401未提供认证信息或凭据无效
ForbidResultForbid()403已认证但权限不足
NotFoundObjectResultNotFound(obj)404请求的资源不存在
ConflictObjectResultConflict(obj)409资源状态冲突(如重复提交、并发修改)
UnprocessableEntityObjectResultUnprocessableEntity(obj)422语法正确但业务语义校验失败(模型验证)

⚠️关键区分:400 是"你说错了"(格式问题),422 是"你说的对但办不到"(业务规则问题)。

4. 无内容响应类

返回类型便捷方法HTTP 状态码典型场景
NoContentResultNoContent()204PUT 更新成功、DELETE 删除成功

5. 文件下载类(FileResult 子类)

返回类型便捷方法数据来源适用场景
FileContentResultFile(byte[], type, name)内存字节数组动态生成的小文件(验证码图片、导出 Excel)
FileStreamResultFile(stream, type, name)Stream 流大文件下载、OSS/云存储代理转发
PhysicalFileResultPhysicalFile(path, type, name)服务器物理路径静态文件直接返回(需做路径安全校验)
VirtualFileResultFile(virtualPath, type)wwwroot 虚拟路径应用内静态资源返回

6. 重定向类

返回类型便捷方法HTTP 状态码安全特性
RedirectResultRedirect(url)/RedirectPermanent(url)302 / 301支持外部 URL,需注意开放重定向风险
RedirectToActionResultRedirectToAction(action, controller)302基于 Action 名称,编译时安全
RedirectToRouteResultRedirectToRoute(routeName, values)302基于路由模板,解耦控制器依赖
LocalRedirectResultLocalRedirect(url)302仅允许本地 URL,自动防御开放重定向攻击

7. 视图渲染类(传统 MVC)

返回类型便捷方法用途
ViewResultView(name, model)渲染完整 Razor 页面
PartialViewResultPartialView(name, model)渲染局部视图片段(HTMX/AJAX 局部刷新)

💡 选型速查决策

需要返回什么? │ ├─ JSON 数据 ──────────► OkObjectResult / ActionResult<T> ├─ 原始文本/XML/HTML ──► ContentResult ├─ 创建资源成功 ───────► CreatedAtActionResult (201) ├─ 异步任务受理 ───────► AcceptedAtActionResult (202) ├─ 更新/删除成功 ──────► NoContentResult (204) ├─ 参数格式错误 ───────► BadRequestObjectResult (400) ├─ 业务校验失败 ───────► UnprocessableEntityObjectResult (422) ├─ 文件下载 ───────────► FileStreamResult (大文件) / FileContentResult (小文件) ├─ 页面跳转 ───────────► LocalRedirectResult (安全) / RedirectToActionResult └─ 自定义状态码 ───────► ObjectResult + StatusCode()

以上涵盖了 ASP.NET Core 中所有继承自ActionResult的常见返回类型。实际开发中,建议优先使用ActionResult<T>作为方法签名,内部根据业务分支返回上述具体类型,兼顾类型安全与灵活性。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/13 4:04:36

2025 Python数据流水线实战:声明式架构与三大调度器协同

1. 项目概述&#xff1a;这不是又一本Python教程&#xff0c;而是一份2025年真实生产环境的数据流水线作战手册“Mastering Python Data Pipelines in 2025”这个标题里&#xff0c;“Mastering”不是指学会几个pandas函数&#xff0c;而是指你能在凌晨三点收到告警邮件时&…

作者头像 李华
网站建设 2026/7/13 4:03:21

AI代码理解技术演进:从语义搜索到智能规划的完整解析

在软件开发领域&#xff0c;理解现有代码库一直是开发者面临的核心挑战。随着AI技术的快速发展&#xff0c;代码理解能力经历了从基础检索到智能推理的显著进化。本文将系统梳理AI读代码技术的四代演进历程&#xff0c;通过具体案例解析每代技术的核心原理、实现方式及其在实际…

作者头像 李华
网站建设 2026/7/13 4:02:51

Agent运行时归零:从事件日志到凭证隔离的工程实践

1. 项目概述&#xff1a;当“运行时”开始自我坍缩你有没有试过在深夜调试一个跑了三小时的AI代理&#xff1f;它刚完成第17次API调用&#xff0c;正准备汇总财务数据&#xff0c;突然卡住——不是报错&#xff0c;不是崩溃&#xff0c;而是安静地、彻底地“失忆”了。你翻遍日…

作者头像 李华
网站建设 2026/7/13 4:01:37

AI记忆革命:突破上下文窗口的局限

最近聊AI Agent的"记忆"问题&#xff0c;很多讨论还停留在"上下文窗口不够大"这个层面——好像只要模型的上下文窗口足够长&#xff0c;能塞进去的信息足够多&#xff0c;这个问题就能被自然解决。 我觉得这个理解低估了问题的复杂度。真正的瓶颈从来不是…

作者头像 李华
网站建设 2026/7/13 4:01:09

C++软件下载

C软件下载 2026年了&#xff0c;竟然还有人零基础学习C&#xff0c;没错就是我&#xff0c;这里记录下学习C的历程。 软件下载和安装 下载链接&#xff1a;https://pan.quark.cn/s/40fd5e6c75fc?pwd7FpW安装 vs_Community.exe&#xff0c;点击"继续"&#xff0c;等待…

作者头像 李华
网站建设 2026/7/13 4:00:37

微软都不敢自动删除,这款工具让你“看得见”地清理C盘

电脑用久之后&#xff0c;磁盘空间往往会被各种临时文件、缓存、日志和更新残留悄悄占满。浏览器缓存、系统临时目录、应用日志、开发工具缓存、聊天软件缓存、显卡着色器缓存等文件单独看并不起眼&#xff0c;但长期积累后&#xff0c;可能占用数 GB 甚至更多空间。DiskClear …

作者头像 李华