为什么Html.CheckBoxFor输出'false'作为Html.HiddenFor输出'False'的值(较低vs正确的情况)?

时间:2016-05-27 19:12:48

标签: asp.net-mvc-3

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

<input id="CheckBox1" name="CheckBox1" type="checkbox" value="true"> <input name="CheckBox1" type="hidden" value="false">

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

<input id="CheckBox2" name="CheckBox2" type="hidden" value="True">

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

为了解决这个问题,我可以修改equalTo方法以在比较复选框值时忽略大小写,但我只是好奇这是否是MVC框架的错误或者这是预期的行为?

这是一个重现问题的小提琴(查看输出查看html的源代码):https://dotnetfiddle.net/LxOm3J

编辑1: 我在CheckBoxFor源中发现它在构建Checkbox时传递小写'true'。问题仍然存在,为什么小案而不是适当的案例。 https://www.symbolsource.org/Public/Metadata/NuGet/Project/Microsoft.AspNet.Mvc/4.0.20710.0/Release/.NETFramework,Version=v4.0/System.Web.Mvc/System.Web.Mvc/System.Web.Mvc/Html/InputExtensions.cs来源的第96行。

0 个答案:

没有答案