title: JSON passed to ApiController doesn't deserialize string values
body: <p>I'm trying to pass a JSON array to an ApiController but the string values aren't deserializing (they are set to null values). The strange thing is that I still get the correct number of elements. </p>
  
  <p>A have an ApiController:</p>
  
  <pre><code>[RoutePrefix("api/language")]
  public class LanguagePairApiController : ApiController
  </code></pre>
  
  <p>With a post method:</p>
  
  <pre><code>// POST: api/language/create
  [HttpPost]
  [Route("create")]
  public string Create([FromBody]LanguagePair[] languagePairs)
  </code></pre>
  
  <p>I'm sending JSON to it:</p>
  
  <pre><code>[
      {"Key":"Test","Value":"Test","Version":"1.0"},
      {"Key":"Areyousure","Value":"Are you sure?","Version":"1.0"},
      {"Key":"File","Value":"File","Version":"1.0"}
  ]
  </code></pre>
  
  <p>And this is the class I'm trying to map it to:</p>
  
  <pre><code>public class LanguagePair
  {
      public string Key { get; set; }
      public string Value { get; set; }
      public string Version { get; set; }
  }
  </code></pre>
  
  <p>But the string values are coming through as null:</p>
  
  <p><a href="https://i.stack.imgur.com/sZZgs.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/sZZgs.png" alt="enter image description here"></a></p>
  
  <p>What am I missing?<br>
  <strong>EDIT: I've figured out one answer to this and posted it below. But I'm still looking for a better answer...</strong></p>