路线模板不能以'/'或>开头'〜'字符,它不能包含'?'字符

时间:2014-11-21 14:51:14

标签: asp.net-web-api asp.net-web-api2 routeattribute

我收到以下路由属性的异常:

[Route("{id}?action=decline")]

例外:

  

类型' System.ArgumentException'的例外情况发生在   System.Web.Http.dll但未在用户代码中处理

     

其他信息:路线模板不能以' /'要么   '〜'字符,它不能包含'?'字符。

为什么不允许这样做?

2 个答案:

答案 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)

您可以执行此操作,并且可以同时访问idaction

[Route("{id}")]

public IHttpActionResult YourMethod([FromUri] string action)