ASP.NET MVC Data Annotation Validator für E-Mail oder Telefon

8

Ich arbeite an einer Formularregistrierung für ApplicationUser . Dort habe ich ein Feld Email or phone wie Facebook. Ich verwende DataAnnotation für die Modellvalidierung. In Data annotation erhalte ich [EmailAddress] für die Email Validierung und [Phone] für die Validierung der Telefonnummer. Aber ich brauche etwas wie [EmailAddressOrPhone] . Wie kann ich das erreichen?

%Vor%     
Zubayer 01.10.2016, 17:17
quelle

3 Antworten

2

Das erreichen Sie mit Regex . Sie müssen den Regex für E-Mail und Telefon zusammen kombinieren .

%Vor%

Oder Sie können ein benutzerdefiniertes Attribut erstellen

%Vor%

und benutze das

%Vor%     
Mahbubur Rahman 01.10.2016, 17:24
quelle
3

Sie sollten Ihre eigenen Regex nicht verwenden, um E-Mail-Adressen zu überprüfen , jedoch würde ich persönlich die folgende Logik verwenden Bestimmen Sie, ob es sich um eine gültige E-Mail-Adresse handelt. Wenn es sich nicht um eine gültige E-Mail-Adresse handelt, können Sie davon ausgehen, dass es sich um eine Telefonnummer handelt.

Der folgende Code verwendet das [EmailAddress] -Attribut, das Sie bereits erwähnt haben, aber innerhalb des Codes. Auf diese Weise müssen Sie Ihre eigene Art der Validierung der E-Mail-Adresse nicht erfinden.

%Vor%

Natürlich müssen Sie festlegen, wie Sie selbst bestimmen, ob die Telefonnummer korrekt ist, da die Telefonnummern in verschiedenen Ländern unterschiedlich sind. Ich habe gerade einen regulären Ausdruck von dieser Frage als Beispiel genommen.

    
Luke 01.10.2016 17:42
quelle
1

Zusätzlich zu benutzerdefinierten Attributen können Sie sich diese Bibliothek ansehen: Ссылка

Ein Beispiel ist:

%Vor%

Ich habe das AssertThat-Attribut von ExpressiveAnnotations verwendet und in einer Ressourcendatei die Fehlermeldung EmailFormatInvalid erstellt.

    
peval27 01.10.2016 17:27
quelle