Por que o ASP.NET MVC Html.CheckBox produz dois INPUTs com o mesmo nome?

Por que no mundo faz a linha:

<%= Html.CheckBox("ForSale", Model.Product.ForSale)%> For Sale

resultar no seguinte HTML:

<input id="ForSale" name="ForSale" type="checkbox" value="true" />
<input name="ForSale" type="hidden" value="false" />
For Sale

Agora, sempre que eu marque a caixa e acessoRequest.Form["ForSale"], Eu recebo a resposta ridícula de"true,false". Eu deveria analisar isso?

Este campo oculto não aparece para os outros controles HtmlHelper, então por que ele faz para CheckBox?

Como faço para desativar esse "recurso" estúpido? Ou oHtmlHelper apenas superar sua utilidade?

Atualizar

Da resposta abaixo, parece que há alguma lógica por trás disso. Eu preparei um pequeno método de extensão para que eu não tenha que pensar nisso (graças a @ eu-ge-ne):

    public static bool GetCheckBoxValue(this System.Web.HttpRequestBase req, 
                                        string name) {
        return Convert.ToBoolean(req.Form.GetValues(name).First());
    }

questionAnswers(7)

yourAnswerToTheQuestion