加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 在Web API 2中使用MVC 5 AttributeRouting的Quer

发布时间:2020-12-16 07:01:05 所属栏目:asp.Net 来源:网络整理
导读:我有以下代码 [HttpGet] [Route("publish/{id}")] public IHttpActionResult B(string id,string publishid=null) { ... } 据我所知, ~/..../publish/1?publishid=12~/..../publish?id=1publishid=12 应该工作并绑定两个参数,但它不适用于第二种情况. 在第一
我有以下代码

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

据我所知,

~/..../publish/1?publishid=12
~/..../publish?id=1&publishid=12

应该工作并绑定两个参数,但它不适用于第二种情况.
在第一种情况下,不会绑定publishid.

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

解决方法

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

其他情况:

> publish / 1 – 将无法工作,因为操作B表示需要使用publishid.为了防止这种情况,您可以将操作的签名更改为类似B(字符串id,字符串publishid = null)并且仅绑定id> publish / 1?publishid = 10 – 按预期工作,两者都绑定.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读