本文介绍了当使用自定义[必需]属性,使用客户端验证的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在这个项目上,我们不使用默认的dataannotation从 System.ComponentModel.DataAnnotations 命名空间属性,但自定义属性都建立。

因此​​,我们并放置在属性 [必需] 属性,但它是建立一个自定义的。

对于服务器端验证,我们成功地覆盖了自定义的验证提供了验证,但我们坚持里边反客户端验证。

我在文档阅读,我看到,当您使用默认 [必需] 属性,这类属性是在HTML元素呈现的:

 数据-VAL-lengthmax =10数据-VAL-长度分钟=3数据-VAL-所需=是必需的CLIENTNAME场。

这是由框架,其内容一般要求属性,然后做了我presume呈现HTML属性。

我们可以做的框架呈现这些属性对于我们呢?


解决方案

Yes, there are 2 possibilities:

  1. Have your custom attribute implement the IClientValidatable interface where you would implement the client validation rules.
  2. Register a custom DataAnnotationsModelValidator<TAttribute> where TAttribute will be your custom validation attribute and where you would implement your custom client side validation rules (that's the approach used by Microsoft to implement client side validation for the Required attribute and that's why if you write a custom validator attribute which derives from it you don't get client side validation). Then you need to register your custom model validator with the custom attribute using DataAnnotationsModelValidatorProvider.RegisterAdapter call.

这篇关于当使用自定义[必需]属性,使用客户端验证的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-30 06:50