title: First html helper generates client-side validation attributes, while the second one doesn't
body: <p>Let's say I have this model:</p>
  
  <pre><code>public class Person
  {
      public bool IsApproved { get; set; }
  }
  </code></pre>
  
  <p>And whis this codes, I am trying to render <code>input</code> with <code>check</code> type:</p>
  
  <pre><code>@Html.CheckBoxFor(x =&gt; x.IsApproved)
  @Html.CheckBox("IsApproved")
  </code></pre>
  
  <p>But, the results are different:</p>
  
  <pre><code>// CheckBoxFor result
  &lt;input data-val="true" data-val-required="The IsApproved field is required." id="IsApproved" name="IsApproved" type="checkbox" value="true"&gt;
  &lt;input name="IsApproved" type="hidden" value="false"&gt;
  
  // CheckBox result
  &lt;input id="IsApproved" name="IsApproved" type="checkbox" value="true"&gt;
  &lt;input name="IsApproved" type="hidden" value="false"&gt;
  </code></pre>
  
  <p><strong><em>How and why</em></strong>, the first one generates attributes for client-side validation, while the other didn't? </p>
  
  <p><strong><em>Update:</em></strong> </p>
  
  <p>After swapping the order of <code>@Html.CheckBoxFor</code> and <code>@Html.CheckBox</code>, the order of markup elements didn't change.</p>