开发者

Custom validation attribute with multiple instances problem

开发者 https://www.devze.com 2023-01-09 15:31 出处:网络
I\'m using tha namespace System.ComponentModel.DataAnnotations in C# 4 to implement my own validation attribute and it looks like this

I'm using tha namespace System.ComponentModel.DataAnnotations in C# 4 to implement my own validation attribute and it looks like this

[AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
public sealed class MyCustomValidator : ValidationAttribute {
    private String Property1 { get; set; }
    private String Property2 { get; set; }

    public ValeTaxiSituacaoRequired(String property1, String property2) {
        Property1 = property1;
        Property2 = property2;
    }

    public override bool IsValid(object value) {
        //validation logic
    }

}

I wanna use this attribute as below

[MyCustomValidator("Name", "Job")]
[MyCustomValidator("Name", "Email")]
[MyCustomValidator("Name", "Job")]
public class Employe {
}

The problem is that just one validation is perfomed. How can I execute all the validations (using asp.开发者_JAVA百科net mvc 2)?


you have to override TypeId property http://www.paraesthesia.com/archive/2010/03/02/the-importance-of-typeid-in-asp.net-mvc-dataannotations-validation-attributes.aspx


If you want to implement AllowMultiple=true on your own attribute then first override TypeID and next for solution to JQuery look at the article on code project here


Take a look at FluentValidation. It allows you to separate your validation from the classes being validated so that you can call your validation logic at any time, on the server or the client.

It allows you to add as many rules of any complexity to a class, without cluttering it with attributes.

0

精彩评论

暂无评论...
验证码 换一张
取 消