title: How to map query parameters with dashes in their names
body: <p>Is there a way to map the query string parameter <code>my-param</code> to the controller method parameter <code>myParam</code> in Web API 2 (preferably using attribute routing)?</p>
  
  <p>This means a URI like...</p>
  
  <pre><code>library.com/books?search-text=REST
  </code></pre>
  
  <p>...should be routed to the controller method</p>
  
  <pre><code>[HttpGet, Route("books/{search-text?}")]
  public IEnumerable&lt;Book&gt; Get(string searchText = "") { ... }
  </code></pre>
  
  <p>Is this possible? The <a href="http://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2" rel="noreferrer">Microsoft documentation</a> does not provide an example for that case. But it also doesn't provide some kind of grammar for route parameters, hence I'm not sure if it's exhaustive.</p>