Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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 3 为什么Html.checkboxforoutput a';假';作为Html.HiddenFor输出';假';(小写与小写)?_Asp.net Mvc 3 - Fatal编程技术网

Asp.net mvc 3 为什么Html.checkboxforoutput a';假';作为Html.HiddenFor输出';假';(小写与小写)?

Asp.net mvc 3 为什么Html.checkboxforoutput a';假';作为Html.HiddenFor输出';假';(小写与小写)?,asp.net-mvc-3,Asp.net Mvc 3,我不确定它是否是预期行为,但当我使用@Html.CheckBoxFor(x=>x.CheckBox1)时,它将输出两个输入字段(其中一个为false,另一个为true,因为Html不会回发false复选框)。但实际呈现的html是: 但是当我使用@Html.HiddenFor(x=>x.CheckBox2)时,输出是: 注意'true'和'true'。当现成的jquery.validate.js尝试使用equalTo函数时,它将永远不会彼此相等,因为'true'!='True' 为了解决这

我不确定它是否是预期行为,但当我使用
@Html.CheckBoxFor(x=>x.CheckBox1)
时,它将输出两个输入字段(其中一个为false,另一个为true,因为Html不会回发false复选框)。但实际呈现的html是:


但是当我使用
@Html.HiddenFor(x=>x.CheckBox2)
时,输出是:

注意
'true'
'true'
。当现成的jquery.validate.js尝试使用equalTo函数时,它将永远不会彼此相等,因为
'true'!='True'

为了解决这个问题,我可以修改equalTo方法,在比较复选框值时忽略大小写,但我只是想知道这是MVC框架的一个bug还是预期的行为

下面是一个复制问题的小提琴(查看输出上的源代码以查看html):

编辑1:
我在源代码的checkboxforsource中发现,在构建复选框时,它传递了小写的“true”。问题仍然存在,为什么小写而不是正楷。源代码的第96行。

方法调用属性值的
.ToString()
方法,该属性值返回一个常量
TrueString
(“True”)或
FalseString
(“False”)。至于MVC团队为什么选择在
CheckBoxFor()
方法中返回小写的“true”,他们只能回答。(另请参阅了解更多详细信息)现在还不清楚开箱即用的jquery.validate.js试图使用equalTo函数是什么意思。。。。您添加了哪些验证规则,以及为什么要比较
'true'
'true'
(您是否试图基于隐藏输入的值实现某种条件验证)?