我收到具有以下路由属性的异常:
[Route("{id}?action=decline")]
例外:
类型为"System.ArgumentException"的异常发生在 System.Web.Http.dll但未在用户代码中处理
其他信息:路由模板不能以"/"或"或"开头 "~"字符,并且不能包含"?"字符。
为什么不允许这样做?
我认为这是不允许的,因为查询字符串不是 URI-Path 的一部分。(请参阅RFC3986 3.3 节 路径 ,它不包括查询部分)
但我没有确凿的事实来证明这一点:/。也许这些链接可以帮助您:
基于查询字符串参数名称
的路由QueryString with MVC 5 AttributeRouting in Web API 2
ASP.NET Web API 2 中的属性路由
你可以这样做,你将可以访问id
和action
:
[Route("{id}")]
public IHttpActionResult YourMethod([FromUri] string action)