ASP.NET Core Web API中操作方法中的参数来源
在ASP.NET Core Web API中,有多种方式可以传递参数给操作方法。以下是一些常见的参数传递方式:
- 路由参数(Route Parameters):参数值从URL的路由中提取。
// Route: api/users/{id}
[HttpGet("api/users/{id}")]
public IActionResult GetUserById(int id)
{
// 使用id执行操作
return Ok();
}
当操作方法中的名称与路由中的名称不一样时,可以使用[FromRoute(Name="xxxx")]来指定。
如:
[HttpGet("school/{schoolName}/class/{classNo}")]
public ActionResult<Student[]> GetAll(string schoolName,[FromQuery(Name="classNo")]string classNum)
- 查询字符串参数(Query String Parameters):参数值从URL的查询字符串中提取
// Route: api/users
[HttpGet("api/users")]
public IActionResult GetUsers(string name, int age)
{
// 使用name和age执行操作
return Ok();
}
请求示例:GET /api/users?name=John&age=25
同样地,如果操作方法中,参数名称与请求参数名称不一致,可以使用[FromQuery(Name="xxx")]来指定。
public ActionResult<Student[]> GetAll([FromQuery] string pageNum,[FromQuery(Name="pSize")]int pageSize)
请求:?pageNum=8&pSize=10.
- 请求体参数(Request Body Parameters):参数值从请求的主体中提取。
public class CreateUserModel
{
public string Name { get; set; }
public int Age { get; set; }
}
// Route: api/users
[HttpPost("api/users")]
public IActionResult CreateUser([FromBody] CreateUserModel model)
{
// 使用model的属性执行操作
return Ok();
}
请求示例:POST /api/users,请求体:{"Name": "John", "Age": 25}
- 标头参数(Header Parameters):参数值从请求的标头中提取。
// Route: api/users
[HttpGet("api/users")]
public IActionResult GetUsers()
{
string apiKey = Request.Headers["API-Key"];
// 使用apiKey执行操作
return Ok();
}
请求示例:GET /api/users,标头:API-Key: secretkey
除了路由参数、查询字符串参数和请求体参数之外,还有其他常见的参数传递方式,如表单参数和多部分/form-data 参数。下面我将为你一一介绍这些方法,并提供相应的示例。
- 表单参数(Form Parameters):
在 ASP.NET Core Web API 中,你可以使用 [FromForm] 属性将参数绑定到表单数据。这适用于使用 application/x-www-form-urlencoded 格式或 multipart/form-data 格式提交的表单数据。
[HttpPost("api/users")]
public IActionResult CreateUser([FromForm] CreateUserModel model)
{
// 使用表单数据执行操作
return Ok();
}
多部分/form-data 参数:
如果你的 API 允许客户端上传文件或发送多部分数据,可以使用 IFormFile 类型接收文件上传。
[HttpPost("api/users/avatar")]
public IActionResult UploadAvatar([FromForm] IFormFile file)
{
// 处理文件上传操作
return Ok();
}
如果需要同时接收其他表单字段,你可以创建一个模型类来表示多部分/form-data 数据。
public class CreateUserWithAvatarModel
{
public string Name { get; set; }
public int Age { get; set; }
public IFormFile Avatar { get; set; }
}
[HttpPost("api/users")]
public IActionResult CreateUserWithAvatar([FromForm] CreateUserWithAvatarModel model)
{
// 使用模型中的数据执行操作,包括文件上传
return Ok();
}
需要注意的是,对于多部分/form-data 数据,你需要确保在客户端请求中使用正确的 Content-Type 标头,以便服务器能够正确解析请求。
ASP.NET Core Web API中操作方法中的参数来源的更多相关文章
- 在 ASP.NET Core Web API中使用 Polly 构建弹性容错的微服务
在 ASP.NET Core Web API中使用 Polly 构建弹性容错的微服务 https://procodeguide.com/programming/polly-in-aspnet-core ...
- [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了
[译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 本文首发自:博客园 文章地址: https://www.cnblogs.com/yilezhu/p/ ...
- C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志
C#实现多级子目录Zip压缩解压实例 参考 https://blog.csdn.net/lki_suidongdong/article/details/20942977 重点: 实现多级子目录的压缩, ...
- 或许是你应该了解的一些 ASP.NET Core Web API 使用小技巧
一.前言 在目前的软件开发的潮流中,不管是前后端分离还是服务化改造,后端更多的是通过构建 API 接口服务从而为 web.app.desktop 等各种客户端提供业务支持,如何构建一个符合规范.容易理 ...
- ASP.NET Core Web API 教程 - Project Configuration
ASP.NET Core Web API 教程 本系列文章主要参考了<Ultimate ASP.NET Core 3 Web API>一书,我对原文进行了翻译,同时适当删减.修改了一部分内 ...
- ASP.NET Core Web API中使用Swagger
本节导航 Swagger介绍 在ASP.NET CORE 中的使用swagger 在软件开发中,管理和测试API是一件重要而富有挑战性的工作.在我之前的文章<研发团队,请管好你的API文档& ...
- 在docker中运行ASP.NET Core Web API应用程序
本文是一篇指导快速演练的文章,将介绍在docker中运行一个ASP.NET Core Web API应用程序的基本步骤,在介绍的过程中,也会对docker的使用进行一些简单的描述.对于.NET Cor ...
- docker中运行ASP.NET Core Web API
在docker中运行ASP.NET Core Web API应用程序 本文是一篇指导快速演练的文章,将介绍在docker中运行一个ASP.NET Core Web API应用程序的基本步骤,在介绍的过 ...
- 在ASP.NET Core Web API中为RESTful服务增加对HAL的支持
HAL(Hypertext Application Language,超文本应用语言)是一种RESTful API的数据格式风格,为RESTful API的设计提供了接口规范,同时也降低了客户端与服务 ...
- 如何在ASP.NET Core Web API测试中使用Postman
使用Postman进行手动测试 如果您是开发人员,测试人员或管理人员,则在构建和使用应用程序时,有时了解各种API方法可能是一个挑战. 使用带有.NET Core的Postman为您的Web API生 ...
随机推荐
- 【Spring Boot】我的第一个Spring Boot练习
背景 Spring 在 Java 生态的企业级开发项目中极其常用,通常我们为项目引入一项新技术时,不得不考虑如何将新技术与 Spring 整合在一起. 我们知道,预研一项新技术,我们基于 MVP(最简 ...
- MySQL - [20] 事务
题记部分 一.什么是ACID (1)Atomicity 原子性 某个操作,要么全部执行完毕,要么全部回滚. (2)Consistency 一致性 数据库中的数据全都符合现实世界中的约束,则这些数据就符 ...
- FastAPI 查询参数完全指南:从基础到高级用法 🚀
title: FastAPI 查询参数完全指南:从基础到高级用法 date: 2025/3/6 updated: 2025/3/6 author: cmdragon excerpt: 探讨 FastA ...
- python 二级 标准库
1.turtle 函数 包括窗体函数.画笔状态.画笔运动函数 random库 3.time 时间处理.时间格式化.时间计时
- mysql基础中的基础 函数
前段时间b站看sql基础语法,在此做一总结 1.基本函数 mysql中的函数基本可以分为单行函数和分组函数,单行函数用于处理单个的数据,分组函数则是传输一组值过去进行处理.单行函数有可分为字符函数,数 ...
- sql server 与 mysql 中常用的SQL语句区别
sql server 与 mysql 的区别 由于博主之前学过mysql,目前在学习SQL server,原来以为这两个数据库之间的sql语句应该不会有太大区别.但是学sql server(用的版 ...
- 【技术分析】EIP-7702 场景下 EOA 授权签名的安全探讨
EIP-7702 在 2025 年即将到来的以太坊 Pectra 升级中,将会引入 EIP-7702 这个提案.其主要的内容就是使得 EOA 账户拥有了自己的 Storage ,并且可以通过 dele ...
- php7有哪些新特性
目录 太空船操作符 标量类型声明和返回值的类型说明 null 合并操作符 常量数组 namespace 批量导入 非混合模式的 use 声明 混合模式的 use 声明 复合模式的 use 声明 thr ...
- 算法分析-回溯算法-求解N皇后问题
一.题目需求 n皇后问题是一道比较经典的算法题.它研究的是将n个皇后放置在一个n×n的棋盘上,使皇后彼此之间不相互攻击. 即任意两个皇后都不能处于同一行.同一列或同一斜线上. 二.算法思想 1.构建棋 ...
- bs4库爬取天气预报
Python不仅用于网站开发,数据分析,图像处理,也常用于爬虫技术方向,最近学习了解下,爬虫技术入门一般先使用bs4库,爬取天气预报简单尝试下. 第一步:首先选定目标网站地址 网上查询,天气预报准确率 ...