title: Changing the parameter name Web Api model binding
body: <p>I'm using Web API model binding to parse query parameters from a URL. For example, here is a model class:</p>
  
  <pre><code>public class QueryParameters
  {
      [Required]
      public string Cap { get; set; }
  
      [Required]
      public string Id { get; set; }
  }
  </code></pre>
  
  <p>This works fine when I call something like <code>/api/values/5?cap=somecap&amp;id=1</code>.</p>
  
  <p>Is there some way I can change the name of the property in the model class but keep the query parameter name the same - for example:</p>
  
  <pre><code>public class QueryParameters
  {
      [Required]
      public string Capability { get; set; }
  
      [Required]
      public string Id { get; set; }
  }
  </code></pre>
  
  <p>I thought adding <code>[Display(Name="cap")]</code> to the <code>Capability</code> property would work, but it doesn't. Is there some type of data annotation I should use?</p>
  
  <p>The controller would be have a method that looked like this:</p>
  
  <pre><code>public IHttpActionResult GetValue([FromUri]QueryParameters param)    
  {
      // Do Something with param.Cap and param.id
  }
  </code></pre>