Почему ASP.NET MVC Html.CheckBox выводит два входа с одинаковым именем?

Почему в мире делает линию:

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

результат в следующем HTML:

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

Теперь, когда я проверяю флажок и доступRequest.Form["ForSale"]Я получаю нелепый ответ"true,false", Я должен разобрать это?

Это скрытое поле не отображается для других элементов управления HtmlHelper, так почему оно используется для CheckBox?

How do I turn this stupid "feature" off? Или сделалHtmlHelper просто перерасти свою полезность?

Update

Из ответа ниже кажется, что за этим стоит некоторая логика. Я подготовил небольшой метод расширения, поэтому мне не нужно об этом думать (спасибо @ eu-ge-ne):

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

Ответы на вопрос(7)

Ваш ответ на вопрос