Html.CheckBox возвращает false, если отключено, даже если выбрано

Надеюсь, это простой вопрос для вас, гуру asp.net mvc:

У меня есть флажок, создан вот так:

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

В своем действии я проверяю значение так:

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

Я ожидаю, что это вернет истину, поскольку оно проверено. Однако создаваемый скрытый элемент имеет ложное значение:

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

Во-первых, есть ли способ заставить HtmlHelper вести себя так, как я ожидал? Или это единственный способ вручную создать ввод / создать собственный вспомогательный метод? (не то чтобы это было большим делом ...)

Во-вторых, может ли кто-нибудь пролить свет на то, почему флажки ведут себя именно так? Я ошибаюсь, предполагая, что отключенный флажок, который отмечен, должен == true? Означает ли отключенное состояние семантически ложь?

27
задан elwyn 17 January 2011 в 21:58
поделиться