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

相关推荐
.NET修仙日记14 天前
2026 .NET 面试八股文:高频题 + 答案 + 原理(进阶核心篇)
面试·职场和发展·c#·.net·.net core·微软技术·webapi
医疗信息化王工14 天前
基于ASP.NET Core的医院输血审核系统设计与实现
后端·mvc·asp.net core·输血审核
医疗信息化王工17 天前
基于ASP.NET Core的住院日志统计系统设计与实现
后端·layui·asp.net core·npoi·dapper
csdn_aspnet20 天前
.Net 解决 Web API 中的“服务器响应状态码为 405(方法不允许)”错误
服务器·.net·webapi
wxm63120 天前
PLC总控改造(2)
webapi
无风听海1 个月前
.NET10之HttpContext.RequestServices 深入解析
.net·asp.net core
硅基喵1 个月前
聊聊 ASP.NET Core 中间件和过滤器的区别
asp.net core
小邓的技术笔记1 个月前
Serilog:从结构化日志认知到 .NET 工程落地
asp.net core·结构化日志·可观测性·serilog
硅基喵1 个月前
Serilog:从结构化日志认知到 .NET 工程落地
asp.net core·可观测性
Murphy20231 个月前
.net8 Swashbuckle.AspNetCore WEBAPI 配置要点记录
.net·swagger·webapi·swashbuckle