我遇到了一个问题,我有一个简单的添加/编辑窗体,并使用从数据注释生成的客户端验证(jQuery/MicrosoftMvcJQueryValidation.js)通过调用下面我认为客户端:作为复选框使用bool值类型时必需的属性
这似乎做工精细的大部分元素,但是我有这样的情况:我有一个使用呈现为一个复选框布尔属性:
model.Chargeable)%>
可以是真/假(打勾/未打勾)。
由于bool是一个值类型,并且不能为空,它被呈现为一个必需的属性,并且当表单提交时显示一个错误(客户端),读到“The Chargeable field is required。”,但是,作为生成的HTML是两部分(复选框和隐藏值),它将通过回发验证。
浏览MVC 2的源代码后,我已经成功地把一个“快速和肮脏的”修复的时刻,这是设置:
DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;
任何其他人有任何意见或建议我如何解决这个问题?
国际海事组织,我不认为MVC应该设置为使用Html.EditorFor/Html.CheckBox(For)方法呈现的复选框的客户端所需验证器。
注意:我正在使用ASP.NET MVC 2 RC2和来自匹配的MVC Futures版本的MicrosoftMvcJQueryValidation.js。
2010-02-05
benno