в привязке по умолчанию для asp.net mvc, какой элемент управления в представлении будет отображаться как логическое значение в качестве параметра в действии контроллера - PullRequest
1 голос
/ 09 января 2010

в asp.net mvc, похоже, флажки привязываются к массиву строк (если они отмечены).есть ли элемент управления view, который будет привязан к логическому значению в моем действии контроллера

 public ActionResult Go(bool isBold)
 {
 }

1 Ответ

3 голосов
/ 09 января 2010

По вашему мнению, вы можете использовать помощник 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".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...