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 传统写法。

相关推荐
2501_9159090637 分钟前
深入理解HTTPS中间人抓包技术原理与实战指南
网络协议·http·ios·小程序·https·uni-app·iphone
我命由我1234538 分钟前
Retrofit - URL 格式错误问题、支持 HTTP 与 HTTPS
java·http·https·java-ee·android studio·android-studio·retrofit
z落落1 小时前
C# ArrayList 动态集合(接口/区别/API/深浅拷贝)+ List<T> 泛型集合
开发语言·c#
游乐码1 小时前
unity基础(八)协程
游戏·unity·c#·游戏引擎
Xin_ye100861 小时前
C# 零基础到精通教程 - 第十六章:ASP.NET Core Web API——构建现代 Web 服务
开发语言·c#
z落落1 小时前
C#ArrayList 和 List<T>核心对比和数组对比
开发语言·c#·list
xiaoshuaishuai811 小时前
C# 内存管理与资源泄漏
开发语言·c#
z落落15 小时前
C#参数区别
java·算法·c#
影寂ldy15 小时前
C#随机数
开发语言·c#
雪豹阿伟15 小时前
11.C# —— 数组属性、高级方法与 Lambda 表达式
c#·上位机