title: Why do I have to specify [FromUri] to get this to work?
body: <p>I am using Asp.NET WebApi and one thing that confuses me is the binding when a request is done.</p>
  
  <p>I have this ViewModel:</p>
  
  <pre><code>[DataContract(Name="Store")]
  public class StoreDm
  {
      [DataMember(IsRequired = true)]
      [MinLength(3)]
      public string Name { get; set; }
  
      [DataMember(IsRequired = true)]
      public double Latitude { get; set; }
  
      [DataMember(IsRequired = true)]
      public double Longitude { get; set; }
  }
  
  public HttpResponseMessage GetStoreNames(StoreDm vm)
  {
      if (ModelState.IsValid)
      {
  
      }
  }
  
  RestClient c = new RestClient("http://localhost:3333/api/store");
  RestRequest r = new RestRequest("/GetStoreNames", Method.GET);
  r.AddParameter("Name", autoComplete);
  r.AddParameter("Latitude", "4");
  r.AddParameter("Longitude", "-7");
  var d =  c.BuildUri(r);
  c.ExecuteAsync(r, response2 =&gt;
    {
        var content = response2.Content;
    });
  </code></pre>
  
  <p>My StoreDm is Null.</p>
  
  <p>I don't get this on so many levels. First I setup IsRequired on all my properties yet for whatever reason the ModelState thinks "null" ViewModel is valid.</p>
  
  <p>Second I don't get why it is <code>null</code>. I have to add <code>[FromUri]</code> to get it to bind. What happens if this would have been a <code>Post</code> and  have the same restClient code but also someone is using fiddler body request. </p>
  
  <p>If I am forced to put <code>[FromUri]</code> then I don't think the fiddler body request will work.</p>
  
  <p>How could I have it so both requests go through and bind properly?</p>