ASP.NET Core:根据需要标记 [FromQuery] 参数

kon*_*tin 3 query-string swagger asp.net-core

在我的控制器中,有一种方法 take 接受一个路由和一个查询参数作为参数:

/// <summary>
/// My Method
/// </summary>
/// <param name="routeParameter">Nice description of route parameter.</param>
/// <param name="queryParameter">Nice description of query paramter.</param>
[HttpPost("somePath/{routeParameter}")]
public IActionResult MyMethod([FromRoute] string routeParameter, [FromQuery] DateTime queryParamter)
{
   // do something 
}
Run Code Online (Sandbox Code Playgroud)

在通过 Swashbuckle XML 从此签名生成的 OpenApi.json / Swagger 中,routeParameter(路径)始终是必需的,但 queryParameter(查询)被标记为可选。

我如何也将查询参数标记为必需?

Lou*_*raQ 9

我如何也将查询参数标记为必需?

只需使用[FromQuery, BindRequired]即可,如下所示:

[HttpPost("somePath/{routeParameter}")]
public IActionResult MyMethod([FromRoute] string routeParameter, [FromQuery, BindRequired] DateTime queryParamter)
{
    // do something  
}
Run Code Online (Sandbox Code Playgroud)

这是测试结果:

在此输入图像描述