Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 列表查询参数中的默认值_Asp.net Core_Swashbuckle - Fatal编程技术网

Asp.net core 列表查询参数中的默认值

Asp.net core 列表查询参数中的默认值,asp.net-core,swashbuckle,Asp.net Core,Swashbuckle,我试图在Swashback中显示默认值。是否有方法在.NET核心API的查询列表参数中定义默认值。 比如: [HttpGet("test")] public ActionResult<string> TestFunc([FromQuery, BindRequired] List<string> testList = ["value1", "value2"]) { //Do some stuff

我试图在Swashback中显示默认值。是否有方法在.NET核心API的查询列表参数中定义默认值。 比如:

[HttpGet("test")]
public ActionResult<string> TestFunc([FromQuery, BindRequired] List<string> testList = ["value1", "value2"]) {
//Do some stuff
           return Ok(results);

}
[HttpGet(“测试”)]
public ActionResult TestFunc([FromQuery,BindRequired]列表testList=[“value1”,“value2”]){
//做点什么
返回Ok(结果);
}

据我所知,我们无法设置默认参数值必须是编译时常量,这意味着我们无法为字符串列表或数组设置默认值

这意味着无法在web api参数内设置default值

如果要在招摇过市中显示默认值。您可以创建一个从IOperationFilter继承的类

然后可以检查参数名称,如果名称等于testList,则可以设置自定义描述

更多详细信息,请参考以下代码示例:

自定义类:

public class ParameterClass : IOperationFilter
{
    public void Apply(OpenApiOperation operation, OperationFilterContext context)
    {
        if (operation.Parameters == null)
        {
            return;
        }

        foreach (var parameter in operation.Parameters) {

            if (parameter.Name == "testList")
            {
                parameter.Description = @"Default value: ['value1', 'value2']";
            }
        }

 
    }
}
使用过滤器注册Swagggen:

      services.AddSwaggerGen(c =>
        {
        
c.OperationFilter<ParameterClass>();
        });
结果:


据我所知,我们无法设置默认参数值必须是编译时常量,这意味着我们无法为字符串列表或数组设置默认值

这意味着无法在web api参数内设置default值

如果要在招摇过市中显示默认值。您可以创建一个从IOperationFilter继承的类

然后可以检查参数名称,如果名称等于testList,则可以设置自定义描述

更多详细信息,请参考以下代码示例:

自定义类:

public class ParameterClass : IOperationFilter
{
    public void Apply(OpenApiOperation operation, OperationFilterContext context)
    {
        if (operation.Parameters == null)
        {
            return;
        }

        foreach (var parameter in operation.Parameters) {

            if (parameter.Name == "testList")
            {
                parameter.Description = @"Default value: ['value1', 'value2']";
            }
        }

 
    }
}
使用过滤器注册Swagggen:

      services.AddSwaggerGen(c =>
        {
        
c.OperationFilter<ParameterClass>();
        });
结果:


有更新吗?我的回复对你有帮助吗?谢谢你的回复@BrandoZhang,我今天会试试这个,让你知道!我已经更新了答案。对你有帮助吗?有更新吗?我的回复对你有帮助吗?谢谢你的回复@BrandoZhang,我今天会试试这个,让你知道!我已经更新了答案。这对您有帮助吗?谢谢@BrandoZhang您知道是否可以在列表的项目字段中填写值吗。因此,当我按下“试用”键时,我希望看到默认项的参数列表中已经填写的值,这样用户可以更容易地删除他不想使用的项。谢谢@BrandoZhang。您知道是否可以填写列表中项字段中的值吗。因此,当我按下“试用”键时,我希望看到默认项的参数列表中已经填写的值,这样用户就可以更容易地删除不想使用的项。