По вашему мнению, вы можете использовать помощник Html.CheckBox
:
<%= Html.CheckBox("isBold") %>
Фактически, будет отображаться два поля ввода HTML:
<input type="checkbox" name="isBold" value="..." />
<input type="hidden" name="isBold" value="false" />
Вот почему может показаться, что "bool" связывается с массивами логических значений, что не совсем верно.
Причина, по которой существует два входа, заключается в том, что флажки, которые не отмечены, не содержат значения вообще. Это означает, что ASP.NET MVC не может отличить «это не было опубликовано вообще» от «это было опубликовано, но оно не проверялось».
При наличии двух входов ASP.NET MVC гарантированно всегда получит хотя бы один вход. Тогда это только выглядит на первый. Вот что происходит:
Если флажок установлен, он видит «true, false» и выбирает первое значение: true
.
Если флажок снят, он видит «ложь» и выбирает первое значение: false
.
Вы все еще можете использовать другие помощники с логическими значениями ввода, такие как Html.TextBox
или Html.DropDownList
. Единственное, что заботит ASP.NET MVC, - это то, что first отправленное значение с таким именем либо говорит "true", либо "false".