Backend - HTTP请求的常用返回类型(asp .net core MVC)

目录

[一、ViewResult 类型](#一、ViewResult 类型)

[1. 写法](#1. 写法)

[2. 用途](#2. 用途)

[二、RedirectToActionResult 类型](#二、RedirectToActionResult 类型)

[1. 写法](#1. 写法)

[2. 用途](#2. 用途)

[三、ContentResult 类型](#三、ContentResult 类型)

[1. 写法](#1. 写法)

[2. 用途](#2. 用途)

[四、OkObjectResult 类型](#四、OkObjectResult 类型)

[1. 写法](#1. 写法)

[2. 用途](#2. 用途)

五、JsonResult

[1. 写法](#1. 写法)

[2. 用途](#2. 用途)


以下介绍几种 IActionResult 的类型

一、ViewResult 类型

1. 写法

cs 复制代码
// AccountController类下的Login方法
public IActionResult Login()
{
    var model = new LoginViewModel();
    return View(model); // 对应Views/Account/Login.cshtml
}

2. 用途

返回 Razor 页面,一般在 MVC 控制器中使用。

常用于登录页、主页、表单页等需要视图渲染的场景。

二、RedirectToActionResult 类型

1. 写法

cs 复制代码
public IActionResult Logout()
{
    HttpContext.SignOutAsync();
    return RedirectToAction("Login", "Account");
}

2. 用途

服务器端重定向到另一个 Action。

常用于登录后跳转、提交表单成功后重定向到主页、退出登录后返回登录页。

三、ContentResult 类型

1. 写法

cs 复制代码
public IActionResult ForceLogout()
{
    return Content("<script>window.top.location.href='/Account/Login';</script>", "text/html");
}

2. 用途

直接返回一段字符串作为 HTTP 响应。

常用于用户登录超时、将当前页面跳出 iframe 、让顶层窗口跳转(而不是标签页内部)。

四、OkObjectResult 类型

1. 写法

cs 复制代码
[HttpGet]
public IActionResult GetMenuTree()
{
    var tree = _menuService.GetTree();
    return Ok(tree);
}

在tree传入前端时,会自动处理成JSON格式

javascript 复制代码
{
  "id": 1,
  "name": "系统管理",
  "children": [...]
}

2. 用途

返回 HTTP 200 状态的 JSON 数据。

常用于Web API 推荐写法、以及Layui、Vue、React 前端请求数据。

五、JsonResult

1. 写法

cs 复制代码
public IActionResult GetUserPermissions()
{
    var rp = _userService.GetRolePermission(User.Identity.Name);
    return Json(new { menus = new List<int> { rp.MenuId }, buttons = rp.ButtonCodes });
}

在传入前端时,会处理成JSON格式

javascript 复制代码
{
  "menus": [1, 2, 3],
  "buttons": ["Add", "Edit", "Delete"]
}

2. 用途

直接返回 JSON 格式内容。

Ok()很像,Ok(object) 更符合 REST 风格,Json(object) 是 MVC 传统写法。

相关推荐
曹牧3 小时前
C#:数字的定义和表示方式
算法·c#
Young_Gnay5 小时前
.NET 之 WebApi学习笔记 (持续更新)
后端·c#
李高钢5 小时前
WPF MVVM Light 入门:从零到Hello World
c#·wpf
曹牧6 小时前
C#:函数参数指定默认值
开发语言·c#
李高钢7 小时前
WPF MVVM Light(三):RelayCommand 命令与 Messenger 消息
前端·c#·wpf
AI刀刀12 小时前
能生成 word 文档的文心在导出时易出现排版错乱,AI 导出鸭精准优化版式,提升文档完整性
人工智能·c#·word·excel·ai导出鸭
凤山老林12 小时前
从 RestTemplate 到 HttpClient 5:Spring Boot HTTP 客户端性能调优与连接池治理
spring boot·后端·http
曹牧13 小时前
C#:字符串做20位截断
开发语言·c#
__zRainy__14 小时前
Node系列 · Node基础:https 模块
后端·网络协议·http·https·node.js
SeaTunnel15 小时前
从 JSON 到 JSONL,Apache SeaTunnel 如何解决HTTP 大数据传输的内存难题?
http·开源·json·apache·数据集成·seatunnel