title: Passing querystring parameters without using OData conventions?
body: <p>Is there a way to pass querystring parameters to an ASP.NET MVC4 Web Api controller without using the OData conventions outlined here? </p>
  
  <p><a href="http://www.asp.net/web-api/overview/web-api-routing-and-actions/paging-and-querying" rel="nofollow noreferrer">http://www.asp.net/web-api/overview/web-api-routing-and-actions/paging-and-querying</a></p>
  
  <p>I have some repository methods built using Dapper that don't support IQueryable and want to be able to manually paginate them without using the OData conventions, but whenever I try doing it the traditional ASP.NET way I get "route not found" errors.</p>
  
  <p>For instance, here's a route:</p>
  
  <pre><code>context.Routes.MapHttpRoute(
             name: "APIv1_api_pagination",
             routeTemplate: "api/v1/{controller}/{id}",
             defaults: new { area = AreaName, controller = "category", offset = 0, count = 100});
  </code></pre>
  
  <p>And here's the signature to match</p>
  
  <pre><code>public class CategoryController : ApiController
  {
      // GET /api/&lt;controller&gt;
      public HttpResponseMessage Get(int id, int offset = 0, int count = 0)
  </code></pre>
  
  <p>And whenever I pass the following query: </p>
  
  <p><code>http://localhost/api/v1/category/1?offset=10</code> </p>
  
  <p>I get the following error: </p>
  
  <blockquote>
    <p>No action was found on the controller 'Category' that matches the
    request.</p>
  </blockquote>
  
  <p>Any suggestions on how to work with querystrings sanely in ASP.NET MVC4 Web Api?</p>