如何将HttpGet属性与多个输入参数一起使用? (和swagger一起工作)

时间:2016-10-21 17:11:22

标签: asp.net-web-api swagger http-get swashbuckle

下面的代码工作正常我只有一个参数,但我该如何做两个输入参数?如果我只是使用[HttpGet],那么虽然它在Swagger之外工作正常,但没有任何参数被发送。救命 ?

//[HttpGet]
[Consumes("application/json")]
[HttpGet("{caseId}")]
public ActionResult Get(string caseId, string fileName)
{
    return null;
}

2 个答案:

答案 0 :(得分:2)

尝试在方法签名中使用FromUri或querystring属性

[Consumes("application/json")]
[HttpGet("{caseId}")]
public ActionResult Get(string caseId, [FromUri] string fileName)
{
    return null;
}

[Consumes("application/json")]
[HttpGet("{caseId}")]
public ActionResult Get(string caseId, [QueryString] string fileName)
{
    return null;
}

现在应该以招摇方式记录,表明caseId是路由的一部分,并且应该指定fileName。

答案 1 :(得分:0)

我只是在尝试这个。

我发现以下代码可用于Swagger:

[HttpGet("{entityId}/{monthsOfHistory}")]
public async Task<ActionResult<DateTime>> GetAsync([FromRoute] int entityId, [FromRoute] int monthsOfHistory)