在这个项目中,我们不使用默认的数据注释属性System.ComponentModel.DataAnnotations
命名空间,但构建了自定义属性。
所以我们确实放置了一个[required]
属性上的属性,但它是自定义构建的。
对于服务器端验证,我们设法使用自定义验证提供程序覆盖验证,但我们仍坚持客户端验证。
正如我在文档中阅读的那样,我发现当您使用默认值时[required]
属性,这些属性呈现在 html 元素上:
data-val-lengthmax="10" data-val-length-min="3" data-val-required="The ClientName field is required."
我认为这是由框架完成的,它读取正常的required
属性,然后渲染 html 属性。
我们能让框架也为我们渲染这些属性吗?
我们能让框架也为我们渲染这些属性吗?
是的,有两种可能性:
- 让您的自定义属性实现IClientValidatable您将在其中实现客户端验证规则的接口。
- 注册定制DataAnnotationsModelValidator<TAttribute>其中 TAttribute 将是您的自定义验证属性,并且您将在其中实现自定义客户端验证规则(这是 Microsoft 用于实现必需属性的客户端验证的方法,这就是为什么如果您编写一个派生自它的自定义验证器属性没有得到客户端验证)。然后,您需要使用自定义属性注册自定义模型验证器
DataAnnotationsModelValidatorProvider.RegisterAdapter
call.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)