title: Binding MVC view to IEnumerable<KeyValuePair<string, bool>> issues
body: <p>I have this in a view:</p>
  
  <pre><code>  @{
      var i = 0;
    }
    @foreach (var field in Model.ConsentQuestions)
      {
        &lt;div class="form-group"&gt;
          &lt;div class="control-label col-md-8"&gt;
            @Html.Label(string.Format("ConsentQuestions[{0}].Key", i), field.Key)
            @Html.Hidden(string.Format("ConsentQuestions[{0}].Key", i), field.Key)
          &lt;/div&gt;
          &lt;p class="col-md-2"&gt;
            @Html.RadioButton(string.Format("ConsentQuestions[{0}].Value", i), true, htmlAttributes: new { id = string.Format("question{0}-true", i) })
            &lt;label for="question@(i)-true"&gt;Yes&lt;/label&gt;
            @Html.RadioButton(string.Format("ConsentQuestions[{0}].Value", i), false, htmlAttributes: new { id = string.Format("question{0}-false", i) })
            &lt;label for="question@(i)-false"&gt;No&lt;/label&gt;
          &lt;/p&gt;
        &lt;/div&gt;
        i++;
      }
  </code></pre>
  
  <p><code>Model.ConsentQuestions</code> is an <code>IEnumerable&lt;KeyValuePair&lt;string, bool&gt;&gt;</code> (the reason for this is that the questions are user-definable).  For whatever reason, the binder can't figure out this one out.  Usually this sort of indexing works fine with collections (I am doing something similar with other IEnumerables with no issue).  What's strange is if I breakpoint my validating method, it sees that there are the right number of items in ConsentQuestions, except each KVP is {"", false}.</p>
  
  <p>I'd like to know how to correct the problem and get the values in the form to bind.</p>
  
  <p><strong>edit:</strong>  I do have a seemingly working solution in using a class that inherits from <code>DefaultModelBinder</code> and then overrides <code>GetPropertyValue</code> to look right at <code>controllerContext.HttpContext.Request.Form</code>... while that's fine as far as it goes I'd still like to know why in this case it isn't working.</p>