Html.CheckBox retorna false se desativado, mesmo se selecionado

Espero que seja uma pergunta fácil para os gurus do asp.net mvc:

Eu tenho uma caixa de seleção, criada assim:

<%=Html.CheckBox("MyCheckBox", true, new { disabled = "disabled"})%>

Na minha ação, estou verificando o valor da seguinte forma:

bool isChecked = form["MyCheckBox"].Contains("true");

Espero que isso retorne verdadeiro, pois está marcado. No entanto, o elemento oculto que é criado possui um valor falso:

<input checked="checked" disabled="disabled" id="MyCheckBox" name="MyCheckBox" type="checkbox" value="true" />
<input name="MyCheckBox" type="hidden" value="false" />

Primeiro, existe uma maneira de fazer o HtmlHelper se comportar como eu esperava? Ou está construindo manualmente a entrada / criando meu próprio método auxiliar da única maneira? (não que isso seja um grande negócio ...)

Segundo, alguém pode esclarecer por que as caixas de seleção se comportam dessa maneira? Estou incorreto ao supor que uma caixa de seleção desabilitada marcada = = seja verdadeira? Um estado desabilitado significa semanticamente falso?

questionAnswers(4)

yourAnswerToTheQuestion