如何在 MVC3 中使用带有自定义验证属性的不显眼的 JS 验证?
我有一个名为 AsteriskRequiredAttribute
的自定义验证属性,它派生自 Required
属性,它的功能只是在文本框字段缺少值时显示星号 (*)。
MVC3 不显眼的 JS 验证似乎在使用 Required
属性时可以完美地工作,但对于我的自定义属性则不然 - 什么也没有发生。
发生什么?
I have this custom validation attribute called AsteriskRequiredAttribute
which derives from the Required
attribute and it's function is only to show an asterisk (*) when textbox field lacks value.
MVC3's unobtrusive JS validation seems to work perfectly out of the bow with the Required
attribute but not with my custom attribute - nothing happens.
What goes?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
http://samipoimala。 com/it/2010/11/29/unobtrusive-client-validation-in-asp-net-mvc-3/
事实证明,实现自定义属性确实是一项简单的任务。您实现自己的类,该类继承 System.ComponentModel.DataAnnotations.ValidationAttribute 并实现 System.Web.Mvc.IClientValidatable。所以你需要做三件事。
1) 覆盖 public bool IsValid(对象值)
当服务器上完成验证时(例如,如果客户端没有启用 javascript),将运行此方法。如果您不需要客户端验证,这就是您需要做的全部事情。
2)创建一个继承自ModelClientValidationRule的类。这通常非常简单。以下是如何在客户端上启用电子邮件验证的示例:
3) 实现 public IEnumerable GetClientValidationRules(ModelMetadatametadata, ControllerContext context)
这通常也很容易实现,这是关于电子邮件验证的示例:
这就是编写您的自己的属性来使用 jQuery Validate 插件上的现成验证规则启用验证。
http://samipoimala.com/it/2010/11/29/unobtrusive-client-validation-in-asp-net-mvc-3/
It turns out that implementing a custom attribute is really an easy task. You implement your own class that inherits System.ComponentModel.DataAnnotations.ValidationAttribute and implements System.Web.Mvc.IClientValidatable. So you need to do three things.
1) Override public bool IsValid(object value)
This method will be run when the validation is done on the server (for example, if the client does not have javascript enabled). This is all you need to do if you don’t need client validation.
2) Create a class that inherits from ModelClientValidationRule. This is usually very simple. Here’s an example how to enable email validation on the client:
3) Implement public IEnumerable GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
This is also usually very easy to implement, here’s the example on email validation:
This is all you need do to write your own attribute to enable validation using the readymade validation rules on jQuery Validate plugin.