web api Get 如何传多个可选参数?

2020-03-18 17:26:23 +08:00
 kingkongs

需求是这样的,http 需要接收若干个参数,采用[HttpGet],其中 page 参数和 size 参数都是有默认值的,其他参数都不是必须的。 当我使用[FromUri]传递参数的时候,测试时只选择了 page 和 size 参数,出现错误如下:

{
    "Message": "找不到与请求 URI“http://localhost/open/user/supplier/users?page=2&size=10”匹配的 HTTP 资源。",
    "MessageDetail": "在控制器“User”上找不到与该请求匹配的操作。"
}

只有将全部参数都带上才没有错误,比如这样

http://localhost/open/user/supplier/users?account=dw2071&page=2&size=10

但我现在的需求是参数不是必须的 目前代码是这样的

public IHttpActionResult getUsers(
    [FromUri] string account,
    [FromUri] string name,
    [FromUri] string insDateL,
    [FromUri] string insDateU,
    [FromUri] string status,
    [FromUri] bool direction,
    [FromUri] string sort,
    [FromUri] int page = 1,
    [FromUri] int size = 10
    )
    {
    // exp
    }

我想问一下如何解决这个问题?谢谢

7802 次点击
所在节点    C#
2 条回复
kingkongs
2020-03-18 21:03:33 +08:00
设置默认值可以解决
MonoLogueChi
2020-03-24 14:18:56 +08:00
试试不写[FromUri],或者是所有参数写成一个类,用[FromQuery]

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/653948

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX