我从其他帖子中读到,如果隐藏了必需的字段验证器,javascript(客户端)不会按预期验证控件,但是服务器端不知道控件是隐藏的,因此验证验证器为假。不确定为什么服务器端不会在回发时收到通知,但会接受它就是这样。
因此,问题是由于这些隐藏的验证器,ModelState.IsValid为false。我认为没问题,我知道这些隐藏验证器的ModelState键,所以我只是删除错误并将ValidationState设置为Valid。看起来这不起作用,因为ErrorCount没有改变,ModelState.IsValid仍然是假的。我使用了以下代码:
modelState["ModelVM.MyKey"].Errors.Clear();
modelState["ModelVM.MyKey"].ValidationState = ModelValidationState.Valid;
我是否需要刷新ModelState?或者是否有更好,更清洁的方式来处理隐藏的必需字段验证器?任何帮助将不胜感激。
我正在使用ASP.NET Core 2.0。感谢。