gpt4 book ai didi

asp.net-mvc - Web API 2 中具有 MVC 5 AttributeRouting 的 QueryString

转载 作者:行者123 更新时间:2023-12-04 19:07:28 26 4
gpt4 key购买 nike

我有以下代码

[HttpGet] 
[Route("publish/{id}")]
public IHttpActionResult B(string id, string publishid=null) { ... }

据我了解,
~/..../publish/1?publishid=12
~/..../publish?id=1&publishid=12

应该可以工作并绑定(bind)两个参数,但它不适用于第二种情况。
在第一种情况下,publishid 不会被绑定(bind)。

所以我不明白为什么这不起作用。知道为什么会这样吗?

最佳答案

第二种情况不起作用,因为 id是路由模板中的必需变量publish/{id} .在 Web API 中,首先发生路由模板匹配,然后是操作选择过程。

其他情况:

  • publish/1 - 不能作为操作 B是说publishid是必需的。为了防止这种情况,您可以将操作的签名更改为 B(string id, string publishid=null)并且只有 id绑定(bind)
  • publish/1?publishid=10 - 在两者都绑定(bind)的情况下按预期工作。
  • 关于asp.net-mvc - Web API 2 中具有 MVC 5 AttributeRouting 的 QueryString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20834018/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com