以下面定义的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}";
}

参考文献: