我有Swagger和C#的问题。我有一个接收字符串列表的GET metod,我用Swagger证明了这一点。当我在Swagger中运行应用程序时,参数“Lista”是paramType = body
而不是query
,并且调试器在此字段中接收null。我该怎么做?感谢
Swagger输出:
Parameter Value Description Parameter Type Data Type
fecha (required) Fecha query date-time
lista Lista body array[string]
C#代码:
/// <summary>
/// Recover some data
/// </summary>
/// <param name="fecha">Fecha</param>
/// <param name="lista">Lista</param>
/// <returns>Information</returns>
[Route("v1/tareas")]
[SwaggerTags("Planificador")]
[SwaggerResponse(HttpStatusCode.OK, typeof(Tarea))]
[SwaggerResponse(HttpStatusCode.NotFound, typeof(string))]
//[BearerAuthorizeAttribute]
[HttpGet]
public HttpResponseMessage GetTarea(DateTime fecha, List<string> lista = null )
{...}
答案 0 :(得分:1)
您必须添加属性[FromBody]:
public HttpResponseMessage GetTarea(DateTime fecha, [FromBody] List<string> lista)
并且没有必要使用默认值,如果你没有传递任何东西它是一个引用类型,无论如何它都是null。