title: ASP.Net Web API RoutePrefix partially ignored
body: <p>I'm trying to use RoutePrefix, but ASP.NET is partially ignoring it. Given the following controller (method bodies and class fields removed):</p>
  
  <pre><code>[RoutePrefix("api/users/sharepoint")]
  public class SharePointController : ApiController
  {
  
  
      public SharePointController(ISharePointUserRepository repo, IAzureUserRepository otherRepo)
      {
  
      }
  
      [HttpGet]
      public ExternalUser Get(int id)
      {
  
      }
  
      [HttpGet]
      public ExternalUser Get(Guid guid)
      {
  
      }
  
      [HttpGet]
      public IEnumerable&lt;ExternalUser&gt; Get()
      {
  
      }
  
      [HttpGet]
      public ExternalUser Get(string username)
      {
  
      }
  
      [HttpGet]
      public IEnumerable&lt;ExternalUser&gt; GetByPersonalEmail(string email)
      {
  
      }
  
      [HttpGet]
      [Route("GetWithDifferences")]
      public IEnumerable&lt;ExternalUser&gt; GetWithDifferences()
      {
  
      }
  
      [HttpGet]
      [Route("GetUnique")]
      public IEnumerable&lt;ExternalUser&gt; GetUnique()
      {
  
  
      }
  
      [HttpPost]
      [Route("search")]
      public IEnumerable&lt;ExternalUser&gt; Search([FromBody] ExternalUserSearchModel model)
      {
  
      }
  </code></pre>
  
  <p>I get the following API (via host/help):</p>
  
  <blockquote>
    <p>SharePoint</p>
    
    <p>GET api/users/sharepoint/GetWithDifferences<br>
    GET api/users/sharepoint/GetUnique<br>
    POST api/users/sharepoint/search<br>
    GET api/SharePoint/{id}<br>
    GET api/SharePoint?guid={guid}<br>
    GET api/SharePoint<br>
    GET api/SharePoint?username={username}<br>
    GET api/SharePoint?email={email}</p>
  </blockquote>
  
  <p>Which, when tested, works as advertised.</p>
  
  <p>As you can see the RoutePrefix is ignored when I don't specify a [Route(..)] for the exposed methods. However I want default actions on GET, so I don't want to specify any additional routing for these.</p>
  
  <p>How can I enforce the RoutePrefix, or, alternatively, how can I maintain default GET and POST behavior with [Route(..)]?</p>