title: How do I set Route attribute in this scenario?
body: <p>In MVC WEB API using C# and .Net framework 4.5.1 I have a controller name <code>MonitoringController</code> as bellow:</p>
  
  <pre><code>public class MonitoringController : ApiController
  {
      [HttpGet]
      [ActionName("list")]
      public IEnumerable&lt;string&gt; List(string collection)
      {
          return new String[] { "test 1", "test 2" };
      }
  }
  </code></pre>
  
  <p>and my routing config is like this:</p>
  
  <pre><code>config.Routes.MapHttpRoute(
      name: "DefaultApi",
      routeTemplate: "api/{controller}/{action}/{id}",
      defaults: new { id = RouteParameter.Optional }
      );
  config.MapHttpAttributeRoutes();
  config.EnsureInitialized();
  </code></pre>
  
  <p>The api works fine on get requests e.g. <a href="http://localhost/api/monitoring/list?collection=test" rel="nofollow">http://localhost/api/monitoring/list?collection=test</a></p>
  
  <p>How do I apply Route attribute to make sure it works on <a href="http://localhost/api/monitoring/" rel="nofollow">http://localhost/api/monitoring/</a><code>channels</code>/list?collection=test</p>
  
  <p>What I thought I should do was :</p>
  
  <pre><code>[RoutePrefix("api/monitoring")]
  public class MonitoringController : ApiController
  {
      [HttpGet]
      [Route("channels")]
      [ActionName("list")]
      public IEnumerable&lt;string&gt; List(string collection)
      {
          return new String[] { "test 1", "test 2" };
      }
  }
  </code></pre>
  
  <p>I cannot get <code>http://localhost/api/monitoring/channels/list?collection=test</code> working! What have I done wrong? </p>
  
  <p>I want to be able to have the following routes defined in the controller:</p>
  
  <ol>
  <li>/api/monitoring/channels/list</li>
  <li>/api/monitoring/windows/list</li>
  <li>/api/monitoring/doors/list</li>
  </ol>
  
  <p>Thanks for your help</p>