Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.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 在自定义IModelBinder中发布时,如何将Html.CheckBox()设置为布尔值?_Asp.net Mvc - Fatal编程技术网

Asp.net mvc 在自定义IModelBinder中发布时,如何将Html.CheckBox()设置为布尔值?

Asp.net mvc 在自定义IModelBinder中发布时,如何将Html.CheckBox()设置为布尔值?,asp.net-mvc,Asp.net Mvc,我正在使用Html.CheckBox()。生成的HTML为: <input id="IsMultiGraph" name="IsMultiGraph" value="true" type="checkbox"> <input name="IsMultiGraph" value="false" type="hidden"> 问题是,由于Html.CheckBox()正在呈现一个复选框以及一个隐藏的输入字段,如果我更改文本框的状态,回发值将加倍(即“true,false”)

我正在使用
Html.CheckBox()
。生成的HTML为:

<input id="IsMultiGraph" name="IsMultiGraph" value="true" type="checkbox">
<input name="IsMultiGraph" value="false" type="hidden">
问题是,由于
Html.CheckBox()
正在呈现一个复选框以及一个隐藏的输入字段,如果我更改文本框的状态,回发值将加倍(即“true,false”)


我理解为什么要这样做,我正在寻找在回发期间解析复选框当前值的最佳方法(checked=true,unchecked=false)。MVC中是否有其他帮助程序方法,或者我是否应该编写自己的方法?

一种方法是使用
NameValueCollection
类的
GetValues
方法来获取数组属性的第一个值,如下所示:

bindingContext.HttpContext.Request.Form.GetValues("IsMultiGraph")[0]

这就行了,任何人都知道ASP.NETMVC在默认活页夹中是如何实现的。似乎复选框是一种特殊情况。也许我太累了,但昨晚我看不到他们在哪里处理复选框和隐藏输入。
bindingContext.HttpContext.Request.Form.GetValues("IsMultiGraph")[0]