Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 在asp.net mvc默认绑定中,视图上的哪个控件将作为控制器操作中的参数映射到布尔值_Asp.net Mvc_Data Binding - Fatal编程技术网

Asp.net mvc 在asp.net mvc默认绑定中,视图上的哪个控件将作为控制器操作中的参数映射到布尔值

Asp.net mvc 在asp.net mvc默认绑定中,视图上的哪个控件将作为控制器操作中的参数映射到布尔值,asp.net-mvc,data-binding,Asp.net Mvc,Data Binding,在asp.net mvc中,复选框似乎绑定到字符串数组(如果选中)。是否有任何视图控件将绑定到我的控制器操作中的布尔值 public ActionResult Go(bool isBold) { } 在您的视图中,您可以使用Html.CheckBoxhelper: <%= Html.CheckBox("isBold") %> 这实际上将呈现两个HTML输入字段: <input type="checkbox" name="isBold" value="..." /&

在asp.net mvc中,复选框似乎绑定到字符串数组(如果选中)。是否有任何视图控件将绑定到我的控制器操作中的布尔值

 public ActionResult Go(bool isBold)
 {
 }

在您的视图中,您可以使用
Html.CheckBox
helper:

<%= Html.CheckBox("isBold") %>

这实际上将呈现两个HTML输入字段:

<input type="checkbox" name="isBold" value="..." />
<input type="hidden" name="isBold" value="false" />

这就是为什么看起来“bool”绑定到boolean数组的原因,但事实并非如此

有两个输入的原因是,未选中的复选框根本不显示任何值。这意味着ASP.NET MVC无法区分“这根本没有发布”和“这已经发布但没有检查”之间的区别

通过有两个输入,ASP.NET MVC保证始终至少获得一个输入。然后它只看第一个。下面是发生的情况:

如果选中该复选框,它将看到“true,false”,并选择第一个值:
true

如果复选框未选中,它将看到“false”,并选择第一个值:
false

您仍然可以使用具有布尔输入值的其他帮助程序,例如
Html.TextBox
Html.DropDownList
。ASP.NET MVC关心的唯一一件事是,使用该名称发布的第一个值要么显示“true”,要么显示“false”