Übergeben von benutzerdefinierten Parametern an ValidationAttribute

8

Ich habe ein benutzerdefiniertes ValidationAttribute erstellt, damit ich eindeutige E-Mail-Adressen in meinem System validieren kann. Ich möchte jedoch irgendwie einen benutzerdefinierten Parameter übergeben, um meiner Validierung mehr Logik hinzuzufügen.

%Vor%     
Mike Cole 12.02.2013, 15:45
quelle

4 Antworten

22

So?

%Vor%

Verwenden:

%Vor%     
Oliver 14.02.2013, 16:04
quelle
1

Hatte eine ähnliche Anforderung, bei der ich einen Wert an ein benutzerdefiniertes Attribut übergeben musste.

Das Problem hier ist, dass Attribute Dekorationen Variablen nicht zulassen. Sie erhalten einen Kompilierzeitfehler:

  

Eine Objektreferenz ist für das nicht statische Feld, die Methode oder erforderlich   Eigenschaft

Hier ist, wie ich es geschafft habe:

In Controller

%Vor%

In Attribut

%Vor%

Beachten Sie, dass die Zeichenfolge in .Name.Equals("SomeId") mit der Deklaration public int SomeId

übereinstimmen muss     
joym8 29.11.2017 21:21
quelle
0

Ich würde so etwas vorschlagen wie @ Olivers Antwort (das würde ich sowieso machen), aber dann habe ich gemerkt, dass du keine Konstanten weitergeben willst.

Was ist dann mit so etwas?

%Vor%

Und dann auf MyConfig.MinStringLength von der Validierung zugreifen? Ich stimme dir zu, dass es nicht zu schön ist.

    
Joel 21.02.2013 14:57
quelle
0

Sie könnten auch Parameter übergeben, die andere Eigenschaften im selben Modell sind.

Erstellen Sie ein benutzerdefiniertes Validierungsattribut:

%Vor%

Übergeben Sie den Namen der Eigenschaft, die Sie verwenden möchten.

%Vor%     
typhon04 14.03.2018 14:34
quelle

Tags und Links