我收到以下路由属性的异常:
[Route("{id}?action=decline")]
例外:
类型' System.ArgumentException'的例外情况发生在 System.Web.Http.dll但未在用户代码中处理
其他信息:路线模板不能以' /'要么 '〜'字符,它不能包含'?'字符。
为什么不允许这样做?
答案 0 :(得分:2)
我认为这是不允许的,因为查询字符串不是URI-Path的一部分。 (参见RFC3986 Section 3.3 Path,它不包括查询部分)
但我没有证据证明:/。
也许这些链接可以帮助您:
Routing based on query string parameter name
QueryString with MVC 5 AttributeRouting in Web API 2
Attribute Routing in ASP.NET Web API 2
答案 1 :(得分:0)
您可以执行此操作,并且可以同时访问id
和action
:
[Route("{id}")]
public IHttpActionResult YourMethod([FromUri] string action)