The route template cannot start with a '/' or > '~' character and it cannot contain a '?' character

asp.net-web-api, asp.net-web-api2, routeattribute

Solution

I think this isn't allowed, because a query string is not part of a URI-Path. (See RFC3986 Section 3.3 Path , it doesn't include the query part) But I have no hard fact to prove that :/. Perhaps these links help you:

Routing based on query string parameter name QueryString with MVC 5 AttributeRouting in Web API 2 Attribute Routing in ASP.NET Web API 2

Problem

I am getting the an exception with the following route attribute: ``` [Route("{id}?action=decline")] ``` Exception: An exception of type 'System.ArgumentException' occurred in System.Web.Http.dll but was not handled in user code Additional information: The route template cannot start with a '/' or '~' character and it cannot contain a '?' character. Why is this not allowed?

Original source