Asp.net mvc 在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="..." /&
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”