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; }
}