我有以下看法:
@Html.LabelFor(m => m.CompanyPostCode) @Html.TextBoxFor(m => m.CompanyPostCode) @Html.LabelFor(m => m.CompanyCity) @Html.TextBoxFor(m => m.CompanyCity) @Html.HiddenFor(m => m.CompanyCityID)
所有属性在我的视图模型中被标记为[必需].那么问题是我的CompanyCityID(标记为必需)被隐藏,因此在视图中没有进行验证.如果我在我的视图中显示此属性,则验证已完成.
我的问题是:可以对隐藏的字段执行验证吗?解决方法存在?
验证一个隐藏的字段似乎有点奇怪.原因是这个字段是从基于特殊规则的jQuery来填充的.如果没有填写,我知道某些内容在视图中无效.
谢谢.
解决方法
可能的原因可能是忽略:jquery.validate.unobtrusive.js文件中的’:hidden’行.
1.9.0版本后,它是一个默认行为.您可以通过添加手动修复
$.validator.setDefaults({ ignore: [] });
正如你可以看到here
Another change should make the setup of forms with hidden elements
easier,these are now ignored by default (option “ignore” has
“:hidden” now as default). In theory,this could break an existing
setup. In the unlikely case that it actually does,you can fix it by setting the ignore-option to “[]” (square brackets without the quotes).