TIP:这篇文章属于入门级的文章,面向的读者是刚刚接触.NET Core的开发人员。

在ASP.NET Core 中给Action传参是在面试和实际开发中必定会遇到和使用到的,那么下面我们就来说说如何给Action传参。常用的传参方式有四种:

  1. url 方式;
  2. querystring 方式;
  3. request header 方式;
  4. request body 方式。

URL方式

URL方式是最简单的方式,下面的代码段就展示了Action如何接收URL参数。

[HttpGet]
[Route("Test/{id:int}")]
public IActionResult Get(int id)
{return View(id);
}

上面代码中,在 Route 特性里我们定义了 url 中的 id 的参数必须是 int 类型。传递参数的 URL 形式如下:

http://localhost:5050/Test/456

querystring 方式

querystring 方式使用的是 ? 模式,它的好处是如果要向后兼容的话,不需要改变 URL 结构,下面这段代码就演示了 Action 如何实现获取 querystring 方式传递进来的参数。

[HttpGet]
[Route("Test/{id:int}")]
public IActionResult Get([FromQuery
(Name = "id")] int id = 456)
{return Ok(id);
}

上面方法中的的 id 参数我们给它赋予了一个默认值 456 ,这说明 id 是可选的,如果我们不传入 id 值的话,就会使用 456 作为参数值。这样的好处是当遗漏参数时保证我们的系统依然可以正常使用。这种传递参数的方式如下:

http://localhost:5050/Test?id=786

request header 方式

这种方式一般用来传递 token、身份信息、验证信息和隐私信息。例如我们将用户的手机号放在header中,Action 接收 header 参数的方式如下:

[HttpGet]
[Route("Test/{phone}")]
public IActionResult Get([FromHeader] string phone)
{return Ok(phone);
}

request body 方式

这种方式经常用于新增和修改操作,是web开发中最常见的方式。下面的代码实现了接收 body 参数的方法:

[HttpPost]
[Route("Test")]
public IActionResult Insert([FromBody] int id)
{return Ok(id);
}

面试官:如何在ASP.NET Core里给Action传递参数相关推荐

  1. 如何在 ASP.Net Core 中使用 Lamar

    ASP.Net Core 自带了一个极简的 开箱即用 的依赖注入容器,实际上,你还可以使用第三方的 依赖注入容器 来替代它,依赖注入是一种设计模式,它能够有效的实现对象之间的解耦并有利于提高单元测试和 ...

  2. 如何在 ASP.NET Core 中使用 Quartz.NET 执行任务调度

    当我们在web开发中,常常会遇到这么一个需求,在后台执行某一项具体的任务,具体的说就是这些任务必须在后台定时执行. Quartz.NET 是一个开源的 JAVA 移植版,它有着悠久的历史并且提供了强大 ...

  3. 如何在 Asp.Net Core 中对请求进行限流

    译文链接:https://www.infoworld.com/article/3442946/how-to-implement-rate-limiting-in-aspnet-core.html 在应 ...

  4. 如何在ASP.NET Core中使用Azure Service Bus Queue

    原文:USING AZURE SERVICE BUS QUEUES WITH ASP.NET CORE SERVICES 作者:damienbod[1] 译文:如何在ASP.NET Core中使用Az ...

  5. 如何在ASP.NET Core中使用JSON Patch

    原文: JSON Patch With ASP.NET Core 作者:.NET Core Tutorials 译文:如何在ASP.NET Core中使用JSON Patch 地址:https://w ...

  6. 如何在ASP.NET Core程序启动时运行异步任务(3)

    原文:Running async tasks on app startup in ASP.NET Core (Part 3) 作者:Andrew Lock 译者:Lamond Lu 之前我写了两篇有关 ...

  7. asp英语是什么意思_如何在ASP.NET Core中使用JSON Patch

    原文: JSON Patch With ASP.NET Core 作者:.NET Core Tutorials 译文:如何在ASP.NET Core中使用JSON Patch 地址:https://w ...

  8. [第二篇]如何在ASP.Net Core的生产环境中使用OAuth保护swagger ui

    在我上篇文章如何在ASP.Net Core的生产环境中保护swagger ui中,我们讨论了如何使用基本身份验证来保护 swagger ui. 使用 OAuth 2.0 和 OpenIdConnect ...

  9. NET问答: 如何在 ASP.NET Core 的 .json 文件中读取 AppSettings ?

    咨询区 Oluwafemi: 在 appsettings.json 中我有如下的 AppSettings 实体数据,如下代码所示: {"AppSettings": {"t ...

最新文章

  1. EK算法网络流模板hdu1532
  2. 扫描到U盘但找不到文件
  3. mysql 10 进制 转36_mysql 10进制与35进制之间的转换 注意Power处理bigint的问题
  4. 【错误记录】Kotlin 编译报错 ( Type mismatch: inferred type is String? but String was expected )
  5. java int与integer的区别
  6. 在SqlServer存储过程中使用Cursor(游标)操作记录
  7. ACM训练总结(大二)
  8. python距离向量路由算法_路由算法(全网最细)
  9. adfs服务器获取信息失败,在ADFS服务器上SAML LogOutRequest处理失败
  10. 硬件基础知识----(2)电阻1
  11. win10升级后ctrl+shift+f失效了(zend studio)问题解决
  12. spring第二冲刺阶段第七天
  13. python自动下载酷狗音乐_python获取酷狗音乐top500的下载地址 MP3格式
  14. CentOS配置国内(阿里云)镜像加速器
  15. 计算机常用英语词汇及读音,e发音的单词有哪些
  16. 小写字母转大写代码HTML,CSS控制转换字母的大写和小写
  17. POWER BI | 注册
  18. c语言水解猴子吃桃问题
  19. SQL SERVER RBAC权限管理表
  20. 解决Duo13内置博通蓝牙和博通Wifi冲突

热门文章

  1. HDU 1593 find a way to escape
  2. 字节跳动(今日头条)推荐算法实习生面试
  3. 华为开发者联盟上架Android 安装包 包名重复问题
  4. java按钮按行放置_java 放置按钮
  5. css实现简单的头像遮罩效果
  6. 计算机毕业设计Java超市会员积分管理系统(源码+系统+mysql数据库+lw文档)
  7. #1135 : Magic Box(枚举)
  8. Python输出斐波拉契数列
  9. 简单方法保持屏幕常亮
  10. 用Keil写一个8路流水灯,两侧各一个LED同时亮起,之后依次向中间聚拢,然后在展开,接着,在8个灯闪三次,为一次循环...