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'
(您是否试图基于隐藏输入的值实现某种条件验证)?