Benutzerdefinierte Validierung Attribut Mehrere Male auf dem gleichen Feld

Wie kann ich das verwenden Derselben Benutzerdefinierten Validierung Attribut Mehrere Male auf Demselben Feld oder einfach nur aktivieren, AllowMultiple=true, sowohl server-Seite und client-seitige Validierung??

Ich habe folgende Benutzerdefinierte Validierung Attribut:

[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, 
        AllowMultiple = true, Inherited = true)]
public class RequiredIfAttribute : ValidationAttribute,IClientValidatable
{
    public RequiredIfAttribute(string dependentProperties, 
     string dependentValues = "",
     string requiredValue = "val")
     {
     }
}

Wo in dependentProperties kann ich das angeben mehrerer abhängiger Eigenschaften, getrennt durch Komma, in dependentValues ich kann angeben, für welche Werte von abhängigen Eigenschaften sollte die Validierung Prozess und schließlich in requiredValue kann ich angeben, zu erwartenden Wert für das Feld validiert werden.

In meinem Modell gibt es zwei Eigenschaften, Wahrzeichen, PinCode und ich will die Validierung wie folgt:

public string LandMark { get; set; }
[RequiredIf("LandMark","XYZ","500500")]
[RequiredIf("LandMark", "ABC", "500505")]
public string PinCode { get; set; }

Die Werte hier sind nur ein Beispiel, wie pro es scheint, ich kann das Attribut hinzufügen mehrere Male und bekomme keine compile-Fehler, implementierte ich TypeID-Attribut, und es funktioniert gut aus serverside, wenn ich entfernen Sie client-Validierung aus. Aber wenn ich die Umsetzung IClientValidatable auf das Attribut, es gibt mir eine Fehlermeldung:

"Validierung geben Sie Namen in dezentem client-Validierung müssen die Regeln eindeutig sein."

Jede Hilfe, wie kann ich es lösen??

  • mit welchem problem sind Sie in Betrieb?
  • Ich habe den genauen Bedarf und ich kann nicht vermeiden Sie die Verwendung der benutzerdefinierten Attribut mehrere Male auf dem gleichen Feld, mein benutzerdefiniertes Attribut implementiert IClientValidatable, ich habe ermöglichen, AllowMultiple=true für das Attribut an.. nun wenn ich das Attribut mehrere Male, die ich erhalten den Fehler " ValidationType-name ist in dezentem Validierung muss eindeutig sein....
  • Bitte aktualisieren Sie Ihre Frage, vielleicht auch code hinzufügen, der Ihre Attribut-und eine Erklärung, wie orhers replizieren könnte Ihr Problem
InformationsquelleAutor Satish | 2011-08-02
Schreibe einen Kommentar