C# 使用Swashbuckle定义意外参数
我有这样的控制器C# 使用Swashbuckle定义意外参数,c#,.net,asp.net-core,swagger,swashbuckle,C#,.net,Asp.net Core,Swagger,Swashbuckle,我有这样的控制器 [HttpGet] public Task<IActionResult> GetCsvAudit([FromQuery] ReportDto request) { return Task.FromResult<IActionResult>(Ok()); } public class ReportDto { public DateTimeRange ActionDateRange { get; set; } public PhiR
[HttpGet]
public Task<IActionResult> GetCsvAudit([FromQuery] ReportDto request)
{
return Task.FromResult<IActionResult>(Ok());
}
public class ReportDto
{
public DateTimeRange ActionDateRange { get; set; }
public PhiResourceType OrderBy { get; set; }
public string PhiResourceTypeIdentifier { get; set; }
}
[HttpGet]
公共任务GetCsvAudit([FromQuery]报告到请求)
{
返回Task.FromResult(Ok());
}
公共类报告
{
公共日期时间范围ActionDateRange{get;set;}
公共资源类型OrderBy{get;set;}
公共字符串类型标识符{get;set;}
}
DateTimeRange为Swagger配置如下:
c.MapType<DateTimeRange>(() => new OpenApiSchema()
{
Description = "Date range",
Type = "string",
Title = "Date range",
Example = new OpenApiString("2020-11-15T00:42:13+00:00 - 2020-11-16T00:42:13+00:00"),
});
c.MapType(()=>newopenapischema()
{
Description=“日期范围”,
Type=“string”,
Title=“日期范围”,
示例=新的OpenApiString(“2020-11-15T00:42:13+00:00-2020-11-16T00:42:13+00:00”),
});
问题是,当我使用[FromQuery]
属性时,Swagger仍然希望我在查询中提供每个DateTimeRange属性,而我希望它期望我为它提供字符串2020-11-15T00:42:13+00:002020-11-16T00:42:13+00:00
如果您将字段/属性标记为
内部
或受保护
或私有
,则在招摇过市文档中,招摇过市会自动忽略该字段/属性:
public class DateTimeRange
{
internal string Start { get; set; }
internal string End { get; set; }
}
结果:
对不起,我的问题可能不清楚。我不想让斯威格期望我为一个类提供所有属性。我想在查询中提供一个字符串,比如
2020-11-15T00:42:13+00:002020-11-16T00:42:13+00:00
(有两个日期用逗号分隔)。我已经实现了ASP.NET绑定器,用于将其从字符串解析到DateTimeRange
类。您可以查看我更新的答案,并查看它是否对您有帮助。这样,我无法成功绑定,您可以查看是否有成功绑定的方法。我将进行查看。谢谢