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
C# 虚张声势显示错误的查询参数_C#_Asp.net Core_Swagger - Fatal编程技术网

C# 虚张声势显示错误的查询参数

C# 虚张声势显示错误的查询参数,c#,asp.net-core,swagger,C#,Asp.net Core,Swagger,我有这个控制器和动作方法: [ApiController] [Route("api/[controller]")] public class AppointmentController : ControllerBase { [Route("{provider}/AvailableSlots")] [HttpGet] public Task<AvailableSlotsResponse> GetAvailableSlots(Req

我有这个控制器和动作方法:

[ApiController]
[Route("api/[controller]")]
public class AppointmentController : ControllerBase
{        
    [Route("{provider}/AvailableSlots")]
    [HttpGet]        
    public Task<AvailableSlotsResponse> GetAvailableSlots(Request<AvailableSlotsRequest> request)
    {
        return null;
    }
}

如何在不必复制
[FromQuery]
属性中的“Location”一词的情况下,使Swagger显示
位置
而不是
模型位置

    public Task<AvailableSlotsResponse> GetAvailableSlots([FromRoute]Request<AvailableSlotsRequest> request)

公共任务

不幸的是,我不得不使用
[FromQuery(Name=”“)]

然而,我找到了一个更好的方法:

[ApiController]
[Route("api/[controller]")]
public class AppointmentController : ControllerBase
{        
    [Route("{provider}/AvailableSlots")]
    [HttpGet]        
    public Task<AvailableSlotsResponse> GetAvailableSlots(AvailableSlotsRequest request)
    {
        return null;
    }
}

public class Request
{
    [FromRoute]
    public string ProviderName { get; set; }
}

public class AvailableSlotsRequest : Request
{
    [FromQuery]
    public string Location { get; set; }
}
[ApiController]
[路由(“api/[控制器]”)]
公共类任命控制员:ControllerBase
{        
[路由(“{provider}/AvailableSlots”)]
[HttpGet]
公共任务GetAvailableSlots(AvailableSlotsRequest请求)
{
返回null;
}
}
公共类请求
{
[FromRoute]
公共字符串提供程序名称{get;set;}
}
公共类可用LotusRequest:请求
{
[FromQuery]
公共字符串位置{get;set;}
}

这也意味着该模型可以使用任何属性,与我第一次尝试使用
[FromQuery]

修饰
T模型时相比,我的重点不是回答这个问题,而是不得不问:您真的需要将两个字符串参数包装到一个泛型类中吗?这似乎只是增加了噪音和复杂性。当然,除非你有很好的理由。@jpgrassi它实际上是一个更复杂的模型,但为了保持问题的简单,我只留下了位置字符串。我可能没有把问题说得足够清楚(我现在刚刚更新了它)。我不想使用[FromQuery(Name=“Location”)],因为这正是属性的名称。
    public Task<AvailableSlotsResponse> GetAvailableSlots([FromRoute]Request<AvailableSlotsRequest> request)
[ApiController]
[Route("api/[controller]")]
public class AppointmentController : ControllerBase
{        
    [Route("{provider}/AvailableSlots")]
    [HttpGet]        
    public Task<AvailableSlotsResponse> GetAvailableSlots(AvailableSlotsRequest request)
    {
        return null;
    }
}

public class Request
{
    [FromRoute]
    public string ProviderName { get; set; }
}

public class AvailableSlotsRequest : Request
{
    [FromQuery]
    public string Location { get; set; }
}