设置asp.net core WebApi函数请求参数可空的两种方式

以下面定义的asp.net core WebApi函数为例,客户端发送申请时,默认三个参数均为必填项,不填会报错,如下图所示:

csharp 复制代码
[HttpGet]
public string GetSpecifyValue(string param1,string param2,string param3)
{
    return $"param1:{param1},param2:{param2},param3:{param3}";
}

如果需要设置param3参数可为空,可以使用以下两种方式:
  1)在参数类型后添加?,标识参数为可空,示例代码及函数运行效果如下所示,:

csharp 复制代码
[HttpGet]
public string GetSpecifyValue(string param1,string param2,string? param3)
{
    return $"param1:{param1},param2:{param2},param3:{param3}";
}

2)将函数输入参数封装为类,通过请求体传参方式(要把请求方式从GET该为POST),示例代码及运行效果如下所示:

csharp 复制代码
 public class InputParamsDemo
 {
     public string Param1 { get; set; }
     public string Param2 { get; set; }
     public string Param3 { get; set; } = string.Empty;//设置了默认值即可不需要强制传值
 }
 [HttpPost]
  public string GetSpecifyValue([FromBody] InputParamsDemo ip)
  {
      return $"param1:{ip.Param1},param2:{ip.Param2},param3:{ip.Param3}";
  }

参考文献:

[1]https://blog.51cto.com/u_16213450/7475977

相关推荐
陈逸子风6 天前
从0到1搭建权限管理系统系列四 .net8 中Autofac的使用(附源码)
vue3·webapi·权限·流程·表单
陈逸子风12 天前
从0到1搭建权限管理系统系列三 .net8 JWT创建Token并使用
vue3·webapi·权限·流程
陈逸子风17 天前
.net core8 使用JWT鉴权(附当前源码)
vue3·webapi·权限·流程
gc_229919 天前
测试ASP.NET Core的WebApi项目调用WebService
webapi·vs2022·webservice
陈逸子风23 天前
.net core8 使用Swagger(附当前源码)
vue3·webapi·权限·流程
小乖兽技术1 个月前
详解Asp.Net Core管道模型中的五种过滤器的适用场景与用法
后端·asp.net core·管道机制
ggtc1 个月前
大请求、请求超时问题
.net·sse·webapi·分块传输·范围请求
界面开发小八哥1 个月前
界面控件Telerik UI for ASP.NET Core 2024 Q2亮点 - AI与UI的融合
人工智能·ui·asp.net·asp.net core·telerik
万雅虎1 个月前
使用Kiota工具生成WebApi的代理类,以及接口调用的简单体验
webapi·aspnetcore·kiota
饭勺oO2 个月前
Elsa V3学习之Flowchart详解(上)
c#·asp.net core·.net core·工作流·elsa