Why in the world does the line:
<%= Html.CheckBox(\"ForSale\", Model.Product.ForSale)%> For Sale
result in the following HTML:
<
It forces the field to be included if it's unchecked. If you uncheck a check box it doesn't get sent as part of the page - they are only sent if they're checked, and then there's a value of true. The hidden field ensures that false will be send if the check box is unchecked, as the hidden field is always sent.