设置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

相关推荐
dax.net4 天前
.NET云原生应用实践(五):使用Blazor WebAssembly实现前端页面
微服务·asp.net core
csdn_aspnet6 天前
.NET 8 Web API 中的身份验证和授权
webapi·.net8.0
河西石头7 天前
完整了解asp.net core MVC中的数据传递
后端·asp.net·mvc·asp.net core·core mvc数据传递·视图控制器的数据传递
csdn_aspnet7 天前
在 .NET 8 Web API 中实现 Entity Framework 的 Code First 方法
webapi·.net8.0
csdn_aspnet9 天前
.NET 8 中的 Mini WebApi
webapi·.net8.0
dax.net10 天前
.NET云原生应用实践(四):基于Keycloak的认证与授权
微服务·asp.net core
csdn_aspnet11 天前
使用 ASP.NET Core 8.0 创建最小 API
webapi·.net8.0
棉晗榜15 天前
asp.net core会话session设置滑动过期时间
后端·asp.net core
dax.net16 天前
.NET云原生应用实践(三):连接到PostgreSQL数据库
微服务·asp.net core
dax.net25 天前
.NET云原生应用实践(二):Sticker微服务RESTful API的实现
.net·asp.net core