DataNannotations的validateModel问题
-
24-10-2019 - |
题
我有一个具有这些属性的searchViewModel:
[RegularExpression("name")]
public String SortField;
[RegularExpression("asc|desc")]
public String SortDirection;
如您所见,我希望“名称”是目前sortfield的唯一有效值,而“ ASC”或“ DESC”是sortrightection的唯一有效值。
但是,当值不同时,ValidateModel不会捕获任何错误,并且ModelState.ISVALID返回true。基本上,我可以提供任何价值,它将永远通过。
缩写控制器方法:
public ActionResult List(SearchViewModel model)
{
ValidateModel(model); // No error here
Boolean isValid = ModelState.IsValid // This is true
//...
}
我究竟做错了什么?
编辑: 我不确定这是否重要,但是我正在使用自定义模型框。
解决方案
这些不是属性;他们是 字段. 。绑定和验证 只要 对抗属性。
供参考 - [RegularExpression]
还允许用户指定输入的值(将转换为null)。如果要禁止零值,请使用 [Required]
此外 [RegularExpression]
.
不隶属于 StackOverflow