This is the way MVC works with checkboxes. If you browse the HTML of your page you will notice that for each checkbox rendered with an HTML helper you have a hidden field with false value. This makes sure that false value is sent in case a user doesn't select your checkbox. That is actually why you have two values if you select a checkbox and only one value if you don't select it. For more details you can check this posts also: asp.net mvc: why is Html.CheckBox generating an additional hidden input Why does the CheckBoxFor render an additional input tag, and how can I get the value using the FormCollection?
Hope it helps.