title: null values sent by jQuery.ajax() are bound to "null" fields in the model
body: <p>I want my model's part to be accessible to my page's JavaScript, so I include the following script tag into the model:</p>
  
  <pre><code>&lt;script type="text/javascript"&gt;
  var filter = @Html.Raw(@Json.Encode(Model.Filter));
  &lt;/script&gt;
  </code></pre>
  
  <p>The <code>filter</code> object is a filter for the subsequent queries, which are done via AJAX:</p>
  
  <pre><code>&lt;script type="text/javascript"&gt;
  function DownloadData() {
      $.ajax({
          url: '@Url.Action("GetData")',
          type: "POST",
          data: filter,
          success: function (data) {
          }
      });
  }
  &lt;/script&gt;
  </code></pre>
  
  <p>It all works OK, but for one part: the <code>filter</code>'s string properties are not <code>null</code>, but <code>"null"</code>. I don't touch the <code>filter</code> variable in my JavaScript yet</p>
  
  <p>Model:</p>
  
  <pre><code>public class SellOffersFilter
  {
      public int MinAge { get; set; }
      public string Country { get; set; }
      public string City { get; set; }
  }
  </code></pre>
  
  <p>Controller:</p>
  
  <pre><code>public ActionResult SellOffersGetPage(SellOffersFilter filter)
  {
      //here both filter.Country and filter.City are equal to "null"
  }
  </code></pre>
  
  <p>The POST form looks like <code>MinAge=0&amp;Country=null&amp;City=null</code>, and JavaScript debugger shows that <code>filter.Country</code> is equal to <code>null</code>, not the <code>"null"</code> string. </p>
  
  <p>Is there a way to force jQuery not to pack the filter's fields into the POST request, if they are <code>null</code>? Or another easy way to pass <code>null</code> values through <code>jQuery.ajax()</code>?</p>