Pey*_*man 5 asp.net-mvc query-string asp.net-web-api
我有以下代码
[HttpGet]
[Route("publish/{id}")]
public IHttpActionResult B(string id, string publishid=null) { ... }
Run Code Online (Sandbox Code Playgroud)
据我所知,
~/..../publish/1?publishid=12
~/..../publish?id=1&publishid=12
Run Code Online (Sandbox Code Playgroud)
应该工作并绑定两个参数,但它不适用于第二种情况.在第一种情况下,不会绑定publishid.
所以我不明白为什么这不起作用.知道为什么会这样吗?
第二种情况不起作用,因为它id是路径模板中的必需变量publish/{id}.在Web API中,首先发生路由模板匹配,然后执行动作选择过程.
其他情况:
publish/1- 因为动作B表明需要使用publishid,所以不会起作用.为了防止这种情况,您可以将操作的签名更改为B(string id, string publishid=null)仅限于id绑定publish/1?publishid=10 - 按预期工作,两者都绑定.| 归档时间: |
|
| 查看次数: |
9368 次 |
| 最近记录: |