大发龙虎 = way to explore
大发龙虎 是一个大发龙虎关于 分享和探索的地方
现在注册
已注册用户请  登录
牛客网
kingkongs
大发龙虎  ›  C#

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

  •  
  •   kingkongs · 223 天前 · 5377 次点击
    这是一个创建于 223 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需求是这样的,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
        }
    

    大发龙虎我 想问一下如何解决这个问题?谢谢

    2 条回复    2020-03-24 14:18:56 +08:00
    kingkongs
        1
    kingkongs   223 天前
    设置默认值可以解决
    MonoLogueChi
        2
    MonoLogueChi   217 天前
    试试不写[FromUri],或者是所有参数写成一个类,用[FromQuery]
    大发龙虎关于   ·   FAQ   ·   API   ·   大发龙虎大发龙虎我 们 的愿景   ·   广告投放   ·   感谢   ·   实用小大发龙虎工具   ·   2585 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 16ms · UTC 15:27 · PVG 23:27 · LAX 08:27 · JFK 11:27
    ♥ Do have faith in what you're doing.